我爲我的Microsoft Sql數據庫使用EntityFramework。 第一實體產品:Entity Framework 1 to Many創建新對象
public class Product
{
public Product()
{
ProductStories = new HashSet<ProductStory>();
}
public int ProductId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public bool Deleted { get; set; }
public HashSet<ProductStory> ProductStories { get; set; }
}
並形成其他單位是ProductStory,存儲故事產品的收入或結果。
public class ProductStory
{
public int ProductStoryId { get; set; }
public virtual Product.Product Product { get; set; }
public int Count { get; set; }
public DateTime DateTime { get; set; }
}
所以一個產品可能是鬃毛ProductStories,或沒有。
我不會顯示所有代碼(太大),所以當我首先創建一個單一的產品實例並將其保存在數據庫中。然後,我創建一個單一的ProductStory並引用屬性Product到該產品的實例。 然後我保存這個ProductStory,變成ProductStory兩個實例。 當我看完了,我做了這個虛擬財產:
public virtual Product.Product Product { get; set; }
如何這個問題可以得到解決?
我使用EntityTypeConfiguration
進行表格配置。
public class ProductMap : EntityTypeConfiguration<Product>
{
public ProductMap()
{
ToTable("Products").HasKey(x => x.ProductId);
Property(x => x.ProductId).IsRequired();
Property(x => x.Name).IsRequired().HasMaxLength(255).HasColumnName("Name");
//.HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute("IX_Name") { IsUnique = true }));
Property(x => x.Description).IsOptional().HasColumnName("Description");
Property(x => x.Deleted).HasColumnName("Deleted");
}
}
而對於ProductStory:
class ProductStoryMap: EntityTypeConfiguration<ProductStory>
{
public ProductStoryMap()
{
ToTable("ProductStories").HasKey(ps => ps.ProductStoryId);
Property(ps => ps.ProductStoryId).IsRequired();
//Property(ps => ps.ProductId).IsRequired().HasColumnName("ProductId");
Property(ps => ps.Count).HasColumnName("Count");
Property(ps => ps.DateTime).HasColumnName("DateTime");
}
}
您顯示了兩次ProductStory的代碼,並且從不顯示產品的代碼。此外,您的ProductStory缺少一個ProductId來存儲產品的參考 –
對不起,修復它。謝謝。 – KamikyIT
您的ProductStoryMap現在需要一個外鍵到產品 –