MrG*_*sen 1 asp.net-mvc entity-framework

我正在使用IdentityModels向我的ApplicationUser( UserProperties)添加一些额外数据。
这是 UserProperties 类:
public UserProperties()
{
Region = new Region();
Universe = new Universe();
}
public int UserPropertiesId { get; set; }
public Region Region { get; set; }
public Universe Universe { get; set; }
Run Code Online (Sandbox Code Playgroud)
手头的问题是,无论何时用户创建帐户,他们都必须选择一个区域和一个宇宙,但实体框架不是将区域和宇宙“链接”到 UserProperties 的条目,而是在 Universe 和区域中创建新的整体,即使为区域和 Universe 提供给 AccountController 的 ID是正确的(即它们存在于数据库中)。
我怎样才能解决这个问题?
如果您需要更多信息,请告诉我。
您的问题出在UserProperties构造函数中,您可以在其中创建and 的新实例。这些实体与您的数据上下文分离。因此,当您调用并且实体框架看到您的 userproperty 有两个分离的相关实体时,它假定需要创建它们。更多信息RegionUniverseSaveChanges
你需要要么
context.Regions.Attach(myRegion);。UserProperties然后设置它们而不是实际实体。我会选择 3。我发现拥有可用的外键属性总是有用的。
您还需要从构造函数中删除初始化,否则每次保存 UserProperties 时它都会继续创建新的区域和宇宙。<插入弦论笑话>
| 归档时间: |
|
| 查看次数: |
1230 次 |
| 最近记录: |