草庐IT

Entity-Framework

全部标签

c# - .NET Framework 3.5 的等效元组 (.NET 4)

.NETFramework3.5中是否存在等效于.NET4的类Tuple?我想用它从一个方法返回多个值,而不是创建一个struct。 最佳答案 不,不在.Net3.5中。但创建您自己的应该并不难。publicclassTuple{publicT1First{get;privateset;}publicT2Second{get;privateset;}internalTuple(T1first,T2second){First=first;Second=second;}}publicstaticclassTuple{publicstat

c# - 在 Visual Studio 中添加新数据项时 EF 6.x DbContext 生成器选项的用途

我有一个使用LINQtoSQL构建的Web应用程序,我希望将其升级到LINQtoEntityFramework。我看过一些教程,了解到基本上在数据库优先的情况下,您创建了一个ADO.NET实体数据模型。从那里,您可以选择要包含在模型中的表(非常类似于LINQtoSQL)。在AddNewItem对话框中,我看到还有另一个创建EF6.xDbContextGenerator的选项:与ADO.NET实体数据模型(对话框中的第一个选项)相比,EF6.xDbContextGenerator的目的是什么?还有,EF6.xDbContextGenerator有什么用?它似乎创建了一个文本文件。我应该用

c# - 在 Visual Studio 中添加新数据项时 EF 6.x DbContext 生成器选项的用途

我有一个使用LINQtoSQL构建的Web应用程序,我希望将其升级到LINQtoEntityFramework。我看过一些教程,了解到基本上在数据库优先的情况下,您创建了一个ADO.NET实体数据模型。从那里,您可以选择要包含在模型中的表(非常类似于LINQtoSQL)。在AddNewItem对话框中,我看到还有另一个创建EF6.xDbContextGenerator的选项:与ADO.NET实体数据模型(对话框中的第一个选项)相比,EF6.xDbContextGenerator的目的是什么?还有,EF6.xDbContextGenerator有什么用?它似乎创建了一个文本文件。我应该用

c# - 多对多映射表

根据我在网上和ProgrammingEntityFrameworkCodeFirst一书中看到的示例,当您在两个类上都有一个集合时,EF会创建一个映射表,例如MembersRecipes和每个类的主键将链接到此表。但是,当我执行以下操作时,我反而在Recipes表中获得了一个名为Member_Id的新字段,并且在中获得了一个Recipe_Id>成员表。这只会创建两个一对多关系,但不会创建多对多关系,因此我可以将成员3链接到食谱(4,5,6),将食谱4链接到成员(1,2,3))等有没有办法创建这个映射表?如果是这样,您如何将其命名为其他名称,例如“食谱”?谢谢publicabstract

c# - 多对多映射表

根据我在网上和ProgrammingEntityFrameworkCodeFirst一书中看到的示例,当您在两个类上都有一个集合时,EF会创建一个映射表,例如MembersRecipes和每个类的主键将链接到此表。但是,当我执行以下操作时,我反而在Recipes表中获得了一个名为Member_Id的新字段,并且在中获得了一个Recipe_Id>成员表。这只会创建两个一对多关系,但不会创建多对多关系,因此我可以将成员3链接到食谱(4,5,6),将食谱4链接到成员(1,2,3))等有没有办法创建这个映射表?如果是这样,您如何将其命名为其他名称,例如“食谱”?谢谢publicabstract

c# - LINQ,无法创建 XXX 类型的常量值。在此上下文中仅支持原始类型或枚举类型

在我的应用程序中,我有讲师,他们有他们可以教授的类(class)列表,当我删除一门类(class)时,我想删除与讲师的连接。这是代码:publicvoidRemoveCourse(intcourseId){using(vardb=newAcademicTimetableDbContext()){varcourseFromDb=db.Courses.Find(courseId);vartoRemove=db.Lecturers.Where(l=>l.Courses.Contains(courseFromDb)).ToList();foreach(varlecturerintoRemove

c# - LINQ,无法创建 XXX 类型的常量值。在此上下文中仅支持原始类型或枚举类型

在我的应用程序中,我有讲师,他们有他们可以教授的类(class)列表,当我删除一门类(class)时,我想删除与讲师的连接。这是代码:publicvoidRemoveCourse(intcourseId){using(vardb=newAcademicTimetableDbContext()){varcourseFromDb=db.Courses.Find(courseId);vartoRemove=db.Lecturers.Where(l=>l.Courses.Contains(courseFromDb)).ToList();foreach(varlecturerintoRemove

c# - 延迟加载与急切加载

在什么情况下预加载比延迟加载更有益?EntityFramework中的延迟加载是加载和访问相关实体时发生的默认现象。然而,预加载是指强制加载所有这些关系的做法。我问这个,因为很明显延迟加载对资源更友好,即使我们使用ToList()方法,我们仍然可以利用延迟加载行为.但是,我认为延迟加载可能会增加对实际数据库的请求数量,也许这就是为什么有时开发人员使用Inlcude方法强制加载所有关系的原因。例如,在MVC5中使用VisualStudio自动脚手架时,在Controller中自动创建的Index方法总是使用EagerLoading,而我一直有疑问,为什么微软在这种情况下默认使用Eager

c# - 延迟加载与急切加载

在什么情况下预加载比延迟加载更有益?EntityFramework中的延迟加载是加载和访问相关实体时发生的默认现象。然而,预加载是指强制加载所有这些关系的做法。我问这个,因为很明显延迟加载对资源更友好,即使我们使用ToList()方法,我们仍然可以利用延迟加载行为.但是,我认为延迟加载可能会增加对实际数据库的请求数量,也许这就是为什么有时开发人员使用Inlcude方法强制加载所有关系的原因。例如,在MVC5中使用VisualStudio自动脚手架时,在Controller中自动创建的Index方法总是使用EagerLoading,而我一直有疑问,为什么微软在这种情况下默认使用Eager

c# - 在 VS 2010 .net 4.0 中使用 Entity Framework 时出现“datetime2”错误

出现此错误:System.Data.SqlClient.SqlException:Theconversionofadatetime2datatypetoadatetimedatatyperesultedinanout-of-rangevalue.我的实体对象都与数据库对象对齐。我通过Google只找到了一个对此错误的引用:Googleresult读完后,我记得我们确实添加了2个字段,然后从VS2010更新了实体模型。我不确定他所说的“手动编码”差异是什么意思。我没看到。我在代码中所做的就是填充实体对象然后保存。(我还在代码中填充了新字段)我用DateTime.Now..填充了日期字段代