Questions tagged «entity-framework»

有关ADO.NET实体框架的问题,请参阅.NET Framework的对象关系映射(ORM)工具。如果适用,请添加特定于版本的标签。请勿对实体框架核心问题使用此标签。请改用entity-framework-core。

1
ASP.NET添加迁移“复合主键错误”如何使用流畅的API
您好,我正在创建Web应用程序,并且已经安装了Microsoft.entityFrameworkCore和Microsoft.entityFrameworkCore.Tools。 在程序包管理器控制台中执行添加迁移的过程中,出现错误 “ System.InvalidOperationException:实体类型'Attends'具有使用数据注释定义的复合主键。要设置复合主键,请使用fluent API “ 这是我在实体文件夹中的代码。 using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Threading.Tasks; namespace _3241_farmDb.Entities { public class Farm { [Required, MaxLength(30)] [Key] public string FarmName { get; set; } [Required, MaxLength(15)] public string FarmCity { get; set; } [Required, MaxLength(9)] public string FarmerSSN …

1
选择实体框架中的前5名
我有 [Person] PersonID, EmailAddress, FirstName, LastName [OnlineAccount] OnlineAccountID, PersonID, Nickname 每个人都可以拥有0- * OnlineAccount。 在使用C#的实体框架中,如何选择拥有最多帐户的前5名人员?

5
存储过程和更新EDMX
我在存储过程和EDMX方面遇到了无尽的问题。我创建了一个过程,从数据库更新了模型,并且一切正常。然后,我删除了一个列,并在存储过程中添加了一个新列。我更新了模型,但EDMX似乎没有刷新proc定义。 我删除了proc,并进行了更新,但手动必须删除对该proc的所有引用。我最终只是重命名proc并通过模型更新从数据库导入。 我只是有同样的问题。添加了新列,并重命名了现有列。我通过数据库中的更新模型刷新了EDMX,但是EDMX没有任何更改,显然在运行时,它失败了。如何使用Entity Framework更新存储过程? 我删除了proc,重新生成了模型,删除了proc的“ cs”文件,进行了编译,然后再次将过程添加到数据库中,重新生成了模型,然后砰!它将相同的模型添加3次,只有最后一个正确。为什么它会继续带回旧版本?

3
限制从Linq返回列表中的结果数
我正在使用Linq / EF4.1从数据库中提取一些结果,并希望将结果限制为(X)个最新结果。其中X是用户设置的数字。 有没有办法做到这一点? 我目前正在将它们传递回来,List好像这将有助于限制结果集。虽然我可以通过循环直到X来限制它,但我只是假设不传递多余的数据。 万一它是相关的...从SQL Server数据库运行的C#MVC3项目。

14
CLR类型到EDM类型的映射在EF 6和5中不明确?
请任何人可以帮助我解决此错误? 指定的架构无效。错误: CLR类型到EDM类型的映射不明确,因为多个CLR类型与EDM类型“ City_DAL”匹配。先前找到的CLR类型为“ CeossDAL.City_DAL”,新近发现的CLR类型为“ CeossBLL.City_DAL”。 我有DAL的主要问题,它包含EF和BLL,并且包含DAL的相同类,但名称空间不同,这是导致问题的原因 我不知道该如何解决这些问题,请您能帮帮我吗? 如果有人给我示例以在EF中使用n层架构,我也将不胜感激 谢谢



3
实体框架代码首先创建“ discriminator”列
我正在使用带有MySQL的网站使用EF CF方法。由于某种原因,EF在我的Post表中创建了一个名为“ Discriminator”的列,并包含VARCHAR“ Post”。 为什么创建此列?我可以做些什么来避免它被创建吗?拥有此专栏有什么好处?

2
实体框架PostgreSQL
有人可以告诉我如何使MS Entity Framework与PostgreSQL一起使用。 另外:实体Framewok如何与Mono合作?您能否建议在Mono上运行的其他类似ORM工具,您对此有何看法?

2
使用实体框架时有哪些好的设计规范
这将主要适用于无法通过soa访问数据的asp.net应用程序。这意味着尽管某些建议仍然适用,但您可以访问从框架加载的对象,而不是传输对象。 这是一个社区帖子,因此请根据需要添加。 适用于:Visual Studio 2008 sp1附带的实体框架1.0。 为什么首先选择EF? 考虑到这是一个存在很多问题的年轻技术(请参阅下文),因此要想在项目中使用EF潮流可能是一件很难的事。但是,这是Microsoft推动的技术(以EF的子集Linq2Sql为代价)。此外,您可能对NHibernate或其他解决方案不满意。无论出于何种原因,都有很多人(包括我在内)与EF合作,而且生活还不错。 EF和继承 第一个大主题是继承。EF确实支持以两种方式持久化的继承类的映射:每个类表和表层次结构。建模很容易,并且该部分没有编程问题。 (以下内容适用于每个类模型的表,因为我没有使用每个层次结构的表的经验,这是有限的。)真正的问题是当您尝试运行包含一个或多个对象的查询时出现的继承树:生成的sql令人难以置信,它需要很长时间才能被EF解析,并且也需要很长时间执行。这是一个真正的表演塞子。足够的EF可能不应与继承一起使用,或尽可能少地使用。 这是一个多么糟糕的例子。我的EF模型有大约30个类,其中大约10个是继承树的一部分。运行查询以从Base类中获取一项(类似于Base.Get(id)一样简单)时,生成的SQL超过50,000个字符。然后,当您尝试返回一些关联时,它甚至会退化更多,甚至会引发SQL异常,即无法一次查询超过256个表。 好的,这很不好,EF概念是允许您创建对象结构而无需(或尽可能少地)考虑表的实际数据库实现。这完全失败了。 那么,建议呢?如果可以的话,避免继承,性能会好得多。尽量在需要的地方使用它。在我看来,这使EF成为了美化的sql生成查询工具,但是使用它仍然有很多优势。和实现机制的方式类似于继承。 用接口绕过继承 尝试获得某种与EF的继承关系时要了解的第一件事是,您不能为非EF建模的类分配基类。甚至不要尝试,建模者会覆盖它。那么该怎么办? 您可以使用接口来强制类实现某些功能。例如,这里有一个IEntity接口,可让您定义EF实体之间的关联,而在设计时您不知道实体的类型。 public enum EntityTypes{ Unknown = -1, Dog = 0, Cat } public interface IEntity { int EntityID { get; } string Name { get; } Type EntityType { get; } } public partial …

22
无法将文件* .mdf作为数据库附加
基本上,我已按照教程进行操作,并决定.mdf以后删除该文件。 现在,每当我尝试运行该应用程序时,都会出现以下错误(该线程的标题)。出现错误的代码如下所示(ASP.NET MVC 4): OdeToFoodDB db = new OdeToFoodDB(); public ActionResult Index() { var model = db.Restaurants.ToList(); return View(model); } 我的连接字符串如下: <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=OdeToFoodDb;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\OdeToFoodDb.mdf" providerName="System.Data.SqlClient" /> 我尝试查看SQL Server对象资源管理器,但看起来如下: 另外,在服务器资源管理器中,我看不到任何数据连接。 当我尝试在Server Explorer中添加新连接时,我看不到任何名为的数据库OdeToFoodDb。 抱歉,这个问题很广泛,但是我是Entity Framework的新手,还不太了解这里的问题。


10
C#实体框架:在存储库类内部正确使用DBContext类
我曾经实现我的存储库类,如下所示 public Class MyRepository { private MyDbContext _context; public MyRepository(MyDbContext context) { _context = context; } public Entity GetEntity(Guid id) { return _context.Entities.Find(id); } } 但是,我最近阅读了这篇文章,该文章说将数据上下文作为存储库中的私有成员是一种不好的做法:http : //devproconnections.com/development/solving-net-scalability-problem 现在,从理论上讲,这篇文章是对的:由于DbContext实现IDisposable,因此最正确的实现如下。 public Class MyRepository { public Entity GetEntity(Guid id) { using (MyDbContext context = new MyDBContext()) { return context.Entities.Find(id); } } } …

15
实体框架如何与递归层次结构一起使用?Include()似乎不适合
我有一个Item。Item有一个Category。 Category有ID,Name,Parent和Children。Parent和Children是Category太。 当我对特定的实体执行LINQ to Entities查询时,除非我使用该方法,否则Item它不会返回相关的实体。但是它并没有带来完整的类别,包括其父级和子级。我可以做,但是这个对象就像一棵树,我有一个递归的层次结构,我不知道它在哪里结束。CategoryInclude("Category")Include("Category.Parent") 如何让EF完全加载Category,带有父级和子级的,以及父级及其父级和子级的加载,依此类推? 对于整个应用程序而言,这不是什么,出于性能方面的考虑,仅对于此特定实体(类别)才需要。

15
实体框架-无法将lambda表达式转换为“字符串”类型,因为它不是委托类型
我在基于C#的代码中使用Entity Framework。我遇到了意外的怪异,正在寻找建议。 案例1、2、3、4 ...项目: RivWorks.dll RivWorks.Service.dll RivWorks.Alpha.dll 样本(所有这些工作): RivWorks.Alpha.dll: public static bool EndNegotitation(long ProductID) { var product = (from a in _dbFeed.AutoWithImage where a.AutoID == ProductID select a).FirstOrDefault(); ... } RivWorks.Service.dll public static RivWorks.Model.NegotiationAutos.AutoWithImage GetProductById(long productId) { var myProduct = from a in _dbFeed.AutoWithImage where a.AutoID == productId select a; …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.