我是ASP.NET的新手,并且遇到了有重复记录的非常奇怪的问题。我将深入到代码在这里:ASP.NET MVC在创建对象上创建重复记录
我有一个公司模型定义为:
public class Company
{
[Key]
public int ID { get; set; }
public DateTime DateCreated { get; set; }
public virtual SubscriptionType SubscriptionType { get; set; }
[Required]
[Display(Name = "Company Name")]
public String Name { get; set; }
}
public class CompanyDBContext : DbContext
{
public DbSet<Company> Companies { get; set; }
}
而定义的SubscriptionType模型:
public class SubscriptionType
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
}
public class SubscriptionTypeDBContext : DbContext
{
public DbSet<SubscriptionType> SubscriptionTypes { get; set; }
}
的SubscriptionType数据在种子功能设置与以下内容:
var subscriptionTypes = new List<SubscriptionType>
{
new SubscriptionType { Name= "Free" },
new SubscriptionType { Name= "Business" },
new SubscriptionType { Name= "Enterprise" },
};
subscriptionTypes.ForEach(s => context.SubscriptionTypes.AddOrUpdate(p => p.Name, s));
context.SaveChanges();
而当我尝试创建一个用户在公共异步任务R egister功能(我使用的是默认ApplicationUser)我用下面的代码创建一个公司,当用户注册:
ApplicationDbContext db = new ApplicationDbContext();
var subscription = db.SubscriptionTypes.Find(1);
var company = new Company { Name = model.CompanyName, DateCreated = DateTime.UtcNow, SubscriptionType = subscription };
var user = new ApplicationUser { UserName = model.Email, Email = model.Email, Company = company };
var result = await UserManager.CreateAsync(user, model.Password);
现在 - 公司应该有1套为SubscriptionType_ID,而是它创造一个在SubscriptionType表中重复记录,并设置SubscriptionType_ID到4
ID | Name
-----------
1 | Free
2 | Business
3 | Enterprise
4 | Free
这是我ApplicationDBContext:
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
public DbSet<SubscriptionType> SubscriptionTypes { get; set; }
public DbSet<Company> Companies { get; set; }
public DbSet<Project> Projects { get; set; }
public DbSet<Collection> Collections { get; set; }
它为什么会CREA在这种情况下重复记录?
尝试向您的标签列表添加实体框架 – mahlatse
您的公司类需要外键导航属性 - [关系和导航属性](https://msdn.microsoft.com/zh-cn/data/jj713564。 aspx) –
我尝试添加SubscriptionTypeID - 不幸的是问题仍然存在。 – Chris