Tag: entity framework

从Visual Studio数据库项目生成entity framework模型

我正在使用EF5和Database-First模型。 和Visual Visual Studio中的数据库项目一起维护应用程序的Sql Server数据库模式。 要更新EF模型,我将在空数据库中部署更改… 是否可以从Visual Studio(2012)数据库项目生成和更新EF模型? 更新:从dacpac文件生成它也是一个不错的选择。 可能吗? 更新:在MS Build 2014大会上,ADO.NET团队建议EF的未来版本(如EF7)仅适用于Code First方法。 后来,他们澄清了新方法的名称,不应该是Code First,尽管代码库建模。 也许并不完全相同,但据我所知,它似乎与我非常相似 。 所以我要尝试@ adam0101解决方案。 以CodeFisrt结尾的任何其他提出的解决方案都追求从SSDT项目迁移到EF的CodeFisrt项目,我想要的是两者的平滑共存(也许我是一个梦想家……)。

一个或零到一个entity framework代码First FluentApi

我需要创建一个或零个到一个引用的fluentapi,并在两个实体上都有导航属性。 EntityTwo应该包含存储外键的简单proerty(EntityOneId) public class EntityOne { public int Id { get; set; } public EntityTwo EntityTwo { get; set; } } public class EntityTwo { public int Id { get; set; } public int EntityOneId { get; set; } public EntityOne EntityOne { get; set; } } public class MyDbContext : DbContext { protected override […]

entity framework更新/插入多个实体

只是我想要完成的一些概述。 我们在应用程序中保留远程数据库(第三方)的本地副本。 要下载信息,我们使用api。 我们目前按计划下载信息,然后将新记录插入本地数据库或更新现有记录。 这是它目前的工作方式 public void ProcessApiData(List apiData) { // get the existing accounts from the local database List existingAccounts = _accountRepository.GetAllList(); foreach(account in apiData) { // check if it already exists in the local database var existingAccount = existingAccounts.SingleOrDefault(a => a.AccountId == account.AccountId); // if its null then its a new record if(existingAccount […]

尝试将FK设置为​​null时,参照完整性约束违规

我正在尝试更新EF6中的实体。 我已经读过,如果我想更改一个ForeignKey属性,我必须确保导航属性是正确的,或者将其设置为null。 我已将set设置为null方法,但我仍然收到Referential Integrity Constraint Exception: A referential integrity constraint violation occurred: The property value(s) of ‘Contact.idContact’ on one end of a relationship do not match the property value(s) of ‘Entity.id_EntityContactInfo’ on the other end. 但是你可以在调试器中看到Entity.Contact为null,所以我相信这不应该抛出。 有任何想法吗? 编辑 这是实体的更新方式: public T CommitUpdate(T obj) where T : class { _DbContext.Set().Attach(obj); _DbContext.Entry(obj).State = EntityState.Modified; _DbContext.Commit(); return obj; […]

如何确定是否在未加载相关记录的情况下设置entity framework中的导航属性

我不确定EF 4中的导航属性,所以我会请你解释一下。 让我们想象一下这种情况: 一个) 我有两个实体A和B ,其关系是N到N(多对多)和我的数据库A和B 树表以及带有两个外键的 AB 。 在这种情况下,EF创建一个导航属性,让我们称之为X ,也称为XReference 。 B) 我有两个实体A和B ,其关系为1到N(一对多), 两个表在我的数据库A和B 有一个外键 。 在这种情况下,EF创建一个导航属性,让我们称之为Y 但不是YReference 。 现在让我们采用场景A和B,并尝试找出B中是否有A的引用: 我的场景代码: 一个): bool isA = a.XReference.EntityKey != null; 我没有加载B记录(对吗?) B): bool isA = aBAny(x => x.BId == AId); 我加载B记录 我的问题: 为什么EF不创建YReference,我不能在场景B中使用EntityKey属性。 在我的代码场景B中,我真的不加载B的任何记录吗? 您是否知道更快速地运行此查询的方法? 谢谢你们的帮助,我希望我能说清楚:-)

当孩子有身份证时,如何使用EF将多个子实体添加到对象?

我们使用EF5和SQL Server 2012以下两个类: public class Question { public Question() { this.Answers = new List(); } public int QuestionId { get; set; } public string Title { get; set; } public virtual ICollection Answers { get; set; } } public class Answer { public int AnswerId { get; set; } public string Text { get; set; […]

如果EAV是邪恶的,那么动态值的用途是什么?

我需要创建一个数据库,其中Accountgroup表将具有动态字段,以便Accounts可以在需要时输入这些动态字段值。 它可能并不重要,但我正在使用C#与EF和Linq。 这对我来说很难,因为我从来没有做过这样的事情,因为我做了我的研究,每个人都说EAV系统太可怕了, 你应该设计得不同 ,问题是之后没有人告诉 – 怎么样? 所以也许你可以帮助我,告诉我如何在不做EAV的情况下实现类似的东西? 这就是我到目前为止所拥有的。

EF无法将double转换为single

我收到一个错误: “’EoiQuote’上的’BomAmountTaxRate’属性无法设置为’System.Double’值。您必须将此属性设置为’System.Single’类型的非null值。” db表架构是: QuoteID uniqueidentifier Unchecked SubmissionDate datetime Unchecked RfqID uniqueidentifier Unchecked SupplierID uniqueidentifier Unchecked SupplierRef nvarchar(50) Checked BomAmountExTax decimal(18, 2) Unchecked BomAmountCurrencyID int Unchecked BomAmountTaxRate float Unchecked BomTaxAmount decimal(18, 0) Unchecked FreightAmountExTax decimal(18, 0) Unchecked FreightAmountCurrencyID int Unchecked FreightAmountTaxRate float Unchecked FreightTaxAmount decimal(18, 0) Unchecked FreeFormParticulars text Checked AvailabilityOpeningDate datetime Checked AvailabilityClosingDate datetime Checked […]

多个相同类型的对象集

我尝试在EF5 RC中创建一个与此类似的数据上下文: class WordContext : DbContext { public DbSet PossibleWords { get; set; } public DbSet UsedWords { get; set; } } 当我尝试更新数据库时,我收到一个例外说: 不支持每种类型的多个对象集。 对象集’PossibleWords’和’UsedWords’都可以包含’TestProject.Word’类型的实例。 经过一些谷歌搜索后,似乎在EF中实际上不可能构建这样的数据上下文。 我的问题是: 存储这样的数据的代码优先设计是什么? 我想一个微不足道的可能是这样的: class WordContext : DbContext { public DbSet Words { get; set; } } class Words { public int ID { get; set; } public IList PossibleWords […]

EF 4 – 没有代理的延迟加载

我读过在需要使用延迟加载和更改跟踪时使用代理。 换句话说,要使用延迟加载,我必须启用代理。 到现在为止还挺好。 关键是我可以使用下面的代码设置上下文不使用代理甚至使用延迟加载。 ctx = new SchoolEntities(); ctx.ContextOptions.ProxyCreationEnabled = false; ctx.ContextOptions.LazyLoadingEnabled = true; ProxyCreationEnabled属性是仅与更改跟踪代理相关还是我遗漏了某些内容? 有人可以用一些细节解释一下吗? 谢谢! EDIT1 我没有使用POCO / DbContext。 我使用带有ObjectContext的常规edmx EF模型。 我知道POCO实体的代理对于更改跟踪和延迟加载的重要性。 为什么在常规EDMX模型中使用Proxies?