草庐IT

Entity-level

全部标签

c# - Entity Framework 外键作为主键代码优先

我有两个代码优先模型,Foo和FooState,其中Foo有一个可选的FooState。publicclassFoo{[Key]publicintFooId{get;set;}publicFooStateFooState{get;set;}}publicclassFooState{[Key]publicintFooStateId{get;set;}[Required]publicintState{get;set;}[Required]publicFooFoo{get;set;}}但是当我尝试像这样将外键添加到FooState时,这工作正常publicclassFooState{[Key

c# - Entity Framework + AutoMapper(实体到 DTO 和 DTO 到实体)

我在将EF与AutoMapper结合使用时遇到了一些问题。=/例如:我有2个相关实体(客户和订单)他们是DTO类:classCustomerDTO{publicstringCustomerID{get;set;}publicstringCustomerName{get;set;}publicIListOrders{get;set;}}classOrderDTO{publicstringOrderID{get;set;}publicstringOrderDetails{get;set;}publicCustomerDTOCustomers{get;set;}}//whenmappingE

c# - Entity Framework 将导航属性设置为 null

我有一个EntityFramework数据库第一个项目。这是模型的摘录:publicpartialclassLedProject{publicLedProject(){this.References=newHashSet();this.Results=newHashSet();this.History=newHashSet();}publicstringIdentifier{get;set;}publicstringName{get;set;}publicNullableCompletionDate{get;set;}publicSystem.DateTimeCreationDate{

c# - 如何使用 MVC5 和 Entity Framework 使用自定义属性更新 IdentityUser

我正在使用内置身份框架进行用户管理,并想向AspNetUsers表添加一些自定义项。到目前为止,我遇到的每个问题的解决方案都会导致另一个问题。如果我对用户模型进行更改(例如,通过在AspNetUsers表中添加邮政编码属性和匹配字段),然后调用UserManager.UpdateAsync(user),它会成功但不会更新中的邮政编码字段数据库。至少oneotherSOquestion已尝试处理此问题。但是那里建议的修复破坏了其他东西:1)创建另一个UserDbContext实例并尝试附加用户对象导致EntityFramework提示“一个实体对象不能被多个IEntityChangeTr

c# - 如何在 Entity Framework 中使用 String 属性作为主键

我是EF的新手,尝试通过ETF6.0中的代码优先方法完成我的第一步,但现在我遇到了问题。我有属性(property)[Key]publicstringFooId{get;set;}这是我的模型主键。但是如果我运行PM>Update-Database在包管理器控制台中命令更新挂起的迁移到数据库我收到以下错误:Identitycolumn'FooId'mustbeofdatatypeint,bigint,smallint,tinyint,ordecimalornumericwithascaleof0,andconstrainedtobenonnullable.如果我将模型中的PK更改为[K

c# - 将 Entity Framework 中的字符串列映射到枚举

有没有办法将字符串列映射到实体模型中的枚举?我已在Hibernate中完成此操作,但无法在EMF中解决。 最佳答案 可能是更好的版本。OrderStateIdentifier字段用于JSON序列化和数据库字段,而OrderState只是为了方便在代码中使用。publicstringOrderStateIdentifier{get{returnOrderState.ToString();}set{OrderState=value.ToEnum();}}[NotMapped][JsonIgnore]publicOrderStateOrd

c# - 将 TransactionScope 与 Entity Framework 6 结合使用

我无法理解的是,是否可以更改上下文并在提交之前在同一事务中获取更改。这就是我要找的:using(varscope=newTransactionScope(TransactionScopeOption.Required)){using(varcontext=newDbContext()){//firstIwanttoupdateaniteminthecontext,nottothedbItemthisItem=context.Items.First();thisItem.Name="Updatename";context.SaveChanges();//Savechangetothisc

c# - Entity Framework 6 模拟包含 dbset 上的方法

一直在谷歌上搜索有关如何在EF6中模拟dbset上的include方法的问题的解决方案。这个问题在这里有详细记录:-http://entityframework.codeplex.com/discussions/461731不幸的是,那里似乎没有有效的解决方案。有没有人找到解决方法?我确实理解我们不应该真正模拟EF6上下文,但项目负责人坚持这样做。提前致谢。 最佳答案 我遇到了与上述@GetFuzzy相同的戏剧性事件-似乎无论我做什么,只要在MoqDbSet上进行Include()调用,我都无法避免NullReferenceExce

c# - 并行不适用于 Entity Framework

我有一个ID列表,我需要对每个ID运行多个存储过程。当我使用标准的foreach循环时,它工作正常,但是当我有很多记录时,它工作得非常慢。我想将代码转换为使用EF,但出现异常:“基础提供程序在打开时失败”。我在Parallel.ForEach中使用这段代码:using(XmlEntitiesosContext=newXmlEntities()){//Thecode}但它仍然抛出异常。知道如何将Parallel与EF一起使用吗?我是否需要为我正在运行的每个过程创建一个新的上下文?我有大约10个过程,所以我认为创建10个上下文非常糟糕,每个上下文一个。 最佳答案

c# - Entity Framework 创建与现有实体有关系的新实体,导致尝试创建现有实体的新副本

我正在尝试创建一个具有特定角色的新用户对象。“角色”是EF中的现有实体。我已经用谷歌搜索和计算器溢出,直到我脸色发青,我已经尝试了所有似乎对其他人都有效的东西。但是当我尝试保存我的新用户对象时,它首先尝试创建一个新的“角色”,而不是仅仅创建一个引用现有角色的新用户对象。我做错了什么?RolemyRole=newRole{ID=myUser.Role.ID};myObjectContext.Roles.Attach(myRole);myUser.Role=myRole;if(myUser.ID==0){myObjectContext.Users.AddObject(myUser);}el