Questions tagged «ef-code-first»

EF Code-First是将Microsoft的Entity Framework与POCO类一起使用的一种方式,与模型优先或DB-first相对。

10
代码优先与模型/数据库优先[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 12个月前关闭。 在EDMX图上使用实体框架4.1代码优先于模型/数据库优先的优缺点是什么? 我试图全面了解使用EF 4.1构建数据访问层的所有方法。我正在使用Repository模式和IoC。 我知道我可以使用代码优先的方法:手动定义我的实体和上下文并用于ModelBuilder微调架构。 我还可以创建一个EDMX图,并选择一个使用T4模板生成相同POCO类的代码生成步骤。 在这两种情况下,我最终POCO都产生ORM不可知的对象和源自的上下文DbContext。 数据库优先似乎是最吸引人的,因为我可以在企业管理器中设计数据库,快速同步模型并使用设计器对其进行微调。 那么这两种方法有什么区别?仅仅是关于VS2010 vs Enterprise Manager的偏爱吗?

2
忽略Entity Framework 4.1 Code First中的类属性
我的理解是,该[NotMapped]属性直到CTP中的EF 5才可用,因此我们不能在生产中使用它。 如何在EF 4.1中标记要忽略的属性? 更新:我注意到其他奇怪的事情。我可以使用该[NotMapped]属性,但是由于某些原因,即使使用public bool Disposed { get; private set; }标记为,EF 4.1仍会在数据库中创建一个名为Disposed的列[NotMapped]。IDisposeable当然,该类实现了,但我不认为这应该有多重要。有什么想法吗?


16
引入FOREIGN KEY约束可能会导致循环或多个级联路径-为什么?
我已经为此努力了一段时间,无法完全了解发生了什么。我有一个包含Sides(通常为2)的Card实体-Cards和Sides都有一个Stage。我正在使用EF Codefirst迁移,并且迁移因以下错误而失败: 在表“ Sides”上引入FOREIGN KEY约束“ FK_dbo.Sides_dbo.Cards_CardId”可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。 这是我的银行卡实体: public class Card { public Card() { Sides = new Collection<Side>(); Stage = Stage.ONE; } [Key] [Required] public virtual int CardId { get; set; } [Required] public virtual Stage Stage { get; set; } [Required] [ForeignKey("CardId")] …

9
实体框架中多个列的唯一键约束
Entity Stack的堆栈溢出:Уникальныйиндекспонесколькимствобцав实体框架 我正在使用Entity Framework 5.0 Code First; public class Entity { [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public string EntityId { get; set;} public int FirstColumn { get; set;} public int SecondColumn { get; set;} } 我要让之间的组合FirstColumn和SecondColumn独特。 例: Id FirstColumn SecondColumn 1 1 1 = OK 2 2 1 = OK 3 3 3 …


2
virtual关键字在Entity Framework 4.1 POCO Code First中可以产生什么作用?
virtual在EF Code First中的属性上使用该关键字是否有效?有人可以在不同情况下描述其所有后果吗? 例如,我知道它可以控制延迟加载 -如果您在ICollection /一对多关系属性上使用virtual关键字,则默认情况下将对其进行延迟加载,而如果不使用virtual关键字,它将渴望加载。 virtual关键字在POCO实体的EF中还能产生什么其他影响?我应该将其默认设置为virtual在所有属性上使用,还是默认为不使用它?

12
实体框架:一个数据库,多个DbContext。这是一个坏主意吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 上个月关闭。 改善这个问题 迄今为止,我的印象是a DbContext表示您的数据库,因此,如果您的应用程序使用一个数据库,则只需要一个DbContext。 但是,一些同事希望将功能区域划分为不同的DbContext类。 我相信这是一个好地方-希望保持代码更清洁-但它似乎不稳定。我的直觉告诉我这是一个坏主意,但不幸的是,我的直觉并不能满足设计决策的要求。 所以我在寻找: A)为什么这可能不是一个好主意的具体例子; B)保证一切都会顺利进行。


6
从DbValidationException获取确切的错误类型
我遇到的情况是,我在EF 4.1的DatabaseInitializer()中初始化我的模型,并得到此烦人的错误,"Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."所以,我转到EntityValidationErrors,有一个字段{System.Data.Entity.Validation.DbEntityValidationResult}完全无法提供有关它无法初始化的字段的信息。有没有办法获取有关此错误的更多信息? 要清除问题: 我知道如何解决字符串长度问题。我要问的是如何获取破坏模型的确切字段名称。

8
EF代码第一个“无效的列名'Discriminator'”,但没有继承
我的数据库中有一个名为SEntries的表(请参见下面的CREATE TABLE语句)。它有一个主键,几个外键,对此没什么特别的。我的数据库中有许多与该表相似的表,但是由于某种原因,该表以EF Proxy Class的“ Discriminator”列结尾。 这是在C#中声明类的方式: public class SEntry { public long SEntryId { get; set; } public long OriginatorId { get; set; } public DateTime DatePosted { get; set; } public string Message { get; set; } public byte DataEntrySource { get; set; } public string SourceLink { get; …



21
实体类型<type>不是当前上下文模型的一部分
我正在进入实体框架,但是不确定是否缺少代码优先方法的关键点。 我正在使用基于https://genericunitofworkandrepositories.codeplex.com/中的代码的通用存储库模式,并创建了我的实体。 但是,当我尝试访问或修改实体时,会遇到以下问题: System.InvalidOperationException:实体类型Estate不属于当前上下文模型。 当我尝试从存储库访问它时会发生这种情况: public virtual void Insert(TEntity entity) { ((IObjectState)entity).ObjectState = ObjectState.Added; _dbSet.Attach(entity); // &lt;-- The error occurs here _context.SyncObjectState(entity); } 可以很好地创建数据库(./SQLEXPRESS),但是在启动时不创建实体(表)。 我想知道是否需要显式设置实体的映射?EF自己不能做到这一点吗? 我的实体是: public class Estate : EntityBase { public int EstateId { get; set; } public string Name { get; set; } } 我的情况是这样的: public partial …


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.