我有一个使用Database First生成的相当通用的Item
实体的示例,Visual Studio 2012和Entity Framework 5中的ADO.Net Entity Data Model
使用生成的模板创建.edmx文件我的课程。
我试图找出是否有可能在不进行数据库更改的情况下生成新实体,因此我有一个基于ItemType
的新实体。 我知道我可以使用Linq to Entities执行此操作,但我很想知道在模型Context中是否可行。
举个例子:
数据库中的ItemType
的值可能为{1, "Fabric"}
,我想基于FabricItem
类创建一个名为Item
的新实体..正如您所看到的那样ColourId
和RangeId
可以为Item
的某些子类,我希望不使用这些属性,即某些属性是可选的。
在创建这些新实体时是否也可以删除/禁用某些属性,例如根本不允许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; }
}