我必须从我的C#程序访问另一个开发人员的一些MySql视图.所以经过一些搜索,我决定实体框架,并使用这个问题中提到的驱动程序:Using MySQL with Entity Framework(MySQL .NET Connector).现在,我正在尝试获取一个视图...

我必须从我的C#程序访问另一个开发人员的一些MySql视图.
所以经过一些搜索,我决定实体框架,并使用这个问题中提到的驱动程序:Using MySQL with Entity Framework(MySQL .NET Connector).
现在,我正在尝试获取一个视图的第一个元素:
myEntities.events.First();
在那里,我得到一个例外:
System.Data.EntityCommandExecutionException was unhandled
Message=An error occurred while executing the command definition. See the inner exception for details.
Source=System.Data.Entity
StackTrace:
at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
at System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
at System.Data.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__0[TResult](IEnumerable`1 sequence)
at System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot)
at System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[S](Expression expression)
at System.Linq.Queryable.First[TSource](IQueryable`1 source)
at J4N.GroopleReports.ReportManager.DataImporter.GenerateEvent(GroopleEntities groopleEntities) in C:\Users\J4N\Dropbox\WorkSpaces\DotNET\GroopleReports\ReportManager\DataImporter.cs:line 35
at J4N.GroopleReports.ReportManager.DataImporter.Import() in C:\Users\J4N\Dropbox\WorkSpaces\DotNET\GroopleReports\ReportManager\DataImporter.cs:line 17
at ImportTest.Program.Main(String[] args) in C:\Users\J4N\Dropbox\WorkSpaces\DotNET\GroopleReports\ImportTest\Program.cs:line 15
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException: MySql.Data.MySqlClient.MySqlException
Message=Every derived table must have its own alias
Source=MySql.Data
ErrorCode=-2147467259
Number=1248
StackTrace:
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int32& insertedId)
at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int32& insertedId)
at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.Entity.EFMySqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
InnerException:
我搜索了什么是这个错误“每个派生表必须有自己的别名”以及如何解决它,我在网上发现了一些关于SQL请求有什么问题的回复,但我无法影响实体框架如何构建它们.
解决方法:
除了接受的答案之外,还应注意,如果您尝试在没有主键的表上保存数据库中的更改,则将抛出相同的异常(每个派生表必须具有自己的别名).
这是一个多年后仍未修复的known bug(在2012年4月4日的MySQL 5.5.22 .Net / Connector 6.5.4中出现).
我知道拥有一个没有主键的表并不是一个好主意,但是由于DDL生成器中存在另一个错误,因此创建了一些关联实体键将StoreGeneratedPattern属性设置为None的表,而没有主键…
本文标题为:c# – MySql实体框架=每个派生表必须有自己的别名


基础教程推荐
- C#中ftp检测目录是否存在和创建文件夹的实现 2023-06-21
- 总结C#处理异常的方式 2023-05-11
- c# 获取已安装的打印机并调用打印文件 2023-03-13
- C#使用Socket实现服务器与多个客户端通信(简单的聊天系统) 2023-02-08
- C# 7.0之ref locals and returns(局部变量和引用返回) 2022-11-08
- ZooKeeper 实现分布式锁的方法示例 2023-01-22
- 详解c#索引(Index)和范围(Range) 2023-03-13
- C#获取Visio模型信息的简单方法示例 2022-11-22
- C# winform 请求http的实现(get,post) 2023-06-21
- c#使用Aspose打印文件的示例 2023-04-14