Item
我有一个使用 Database First 生成的相当通用的实体的以下示例,ADO.Net Entity Data Model
在 Visual Studio 2012 和 Entity Framework 5 中,使用为我生成类的模板创建一个 .edmx 文件。
我试图找出是否可以在不更改数据库的情况下生成新实体,以便我有一个基于ItemType
. 我知道我可以使用 Linq to Entities 来做到这一点,但我很想知道这在模型上下文中是否可行。
举个例子:ItemType
数据库中的一个可能有一个值,{1, "Fabric"}
我想创建一个FabricItem
基于Item
类的新实体。你可以看到ColourId
和RangeId
是可以为空的,因为Item
我希望不使用这些属性的一些子类即有些是可选的。
在创建这些新实体时是否也可以删除/禁用某些属性,例如根本不允许 a ColourId
?
public partial class Item
{
public Item()
{
this.ItemToItems = new HashSet<ItemToItem>();
}
public string Id { get; set; }
public string Name { get; set; }
public Nullable<int> ColourId { get; set; }
public int ItemTypeId { get; set; }
public Nullable<int> RangeId { get; set; }
public bool Active { get; set; }
public virtual Range Range { get; set; }
public virtual Colour Colour { get; set; }
public virtual ItemType ItemType { get; set; }
public virtual ICollection<ItemToItem> ItemToItems { get; set; }
public virtual ICollection<ItemToItem> ItemToItems1 { get; set; }
public virtual ICollection<ItemImage> ItemImages { get; set; }
}
public partial class ItemToItem
{
public int Id { get; set; }
public string ItemId { get; set; }
public string RelatedItemId { get; set; }
public virtual Item Item { get; set; }
public virtual Item Item1 { get; set; }
}
public partial class Range
{
public Range()
{
this.Items= new HashSet<Item>();
}
public int Id { get; set; }
public string Name { get; set; }
public bool Active { get; set; }
public virtual ICollection<Item> Items { get; set; }
}
public partial class ItemType
{
public ItemType()
{
this.Items = new HashSet<Item>();
}
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Item> Items { get; set; }
}
public partial class Colour
{
public Colour()
{
this.Items = new HashSet<Item>();
}
public int Id { get; set; }
public string Name { get; set; }
public string Hex { get; set; }
public virtual ICollection<Item> Items { get; set; }
}
public partial class ItemImage
{
public int Id { get; set; }
public string ItemId { get; set; }
public int ImageTypeId { get; set; }
public string ImageUrl { get; set; }
public virtual ImageType ImageType { get; set; }
public virtual Item Item { get; set; }
}
public partial class ImageType
{
public ImageType()
{
this.ItemImages = new HashSet<ItemImage>();
}
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<ItemImage> ItemImages { get; set; }
}