asp.net-mvc – 实体类型处于“阴影状态”是什么意思?
在我的ASP.NET Core 1.0,MVC6,EF7 Web应用程序中,我添加了一个迁移,添加了一个新的相关表(和相应的模型).我有以下模型快照:
[DbContext(typeof(ApplicationDbContext))] partial class ApplicationDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { modelBuilder .HasAnnotation("ProductVersion","7.0.0-rc1-16348") .HasAnnotation("SqlServer:ValueGenerationStrategy",SqlServerValueGenerationStrategy.IdentityColumn); modelBuilder.Entity("Salesboost.Models.ApplicationUser",b => { b.Property<string>("Id"); b.Property<int?>("TeamId"); b.HasKey("Id"); // -- <unrelated fields snipped> -- }); // -- <snipped> -- modelBuilder.Entity("Team",b => { b.Property<int>("Id").ValueGeneratedOnAdd(); b.Property<string>("Name").IsRequired(); b.Property<string>("ManagerId").IsRequired(); b.HasKey("Id"); }); modelBuilder.Entity("Team",b => { b.HasOne("ApplicationUser","Manager") .WithOne("TeamManaging") .HasForeignKey("ManagerId"); }); } } Team.cs: public class Team { public int Id { get; set; } public string Name { get; set; } public string ManagerId { get; set; } public virtual ApplicationUser Manager { get; set; } public virtual ICollection<ApplicationUser> Members { get; set; } } ApplicationUser: public class ApplicationUser : Microsoft.AspNet.Identity.EntityFramework.IdentityUser { public int? TeamId { get; set; } public virtual Team Team { get; set; } public virtual Team TeamManaging { get; set; } } 当我尝试更新数据库时,dnx给出了以下错误:
实体类型处于“阴影状态”意味着什么?有没有解决的办法? 解决方法
EF documentation解释了影子属性是什么:
所以,当实体具有至少一个阴影属性时,我猜一个实体处于阴影状态. 这意味着在使用Property< ...>(“…”)的字符串重载时应该非常小心,因为这可能会引入阴影属性,即使您不需要它们也是如此.因此,当需要创建数据库时,EF会抱怨处于阴影状态的实体不存在CLR类型. 使用nameof()而不是普通字符串可能会有所帮助.因此,重载看起来像Property< ...>(nameof(…))更安全. 最后,为了更接近点,引入阴影属性来处理实体之间的关系.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 请求验证 – ASP.NET MVC 2
- asp.net – DataBinding:’System.Data.DataRowView’不包
- 设计模式 – 如何在自己的应用程序域中分离webapi控制器?
- asp.net-mvc-2 – 在ASP.NET MVC2中向客户端返回http 204“
- asp.net – GridView RowUpdating无法获取新值
- asp.net – .Net核心Cookie身份验证在IIS中托管时不起作用
- asp.net-mvc – 在AJAX请求之前单击按钮时的客户端验证
- asp.net – 是每个用户或每个应用程序的标准OutputCache属性
- 如何使非常简单的ASP.Net密码保护页面
- VS添加版权声明
- asp.net-mvc – 在MVC中使用Rotativa pdf显示动态
- asp.net-mvc-3 – 具有最佳实践的示例N层ASP.NET
- asp.net – 无法将ValueProviderFactory添加到We
- asp.net-mvc – Full-Stack Web应用程序框架的定
- 如何在ASP.NET应用程序中使用CSS
- asp.net-mvc – 如何处理MVC5中的配置和代码中的
- asp.net – 如何绕过X框架选项:SAMEORIGIN HTTP
- asp.net-mvc – ASP.NET MVC 3 – 区域无法正常工
- MS Chart与ASP.NET图表类型“列”不显示轴x标签,
- 并行运行ASP.NET Webforms和ASP.NET MVC