C# LINQ InheritanceMappingAttribute代码属性
C# LINQ InheritanceMappingAttribute代码属性,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,InheritanceMappingAttributeatribute的code属性的用途是什么? 文档说明它与IsDiscriminator属性相关。但是,我也不知道IsDiscriminator属性 我正在读这个例子: public enum ShapeType { Square = 0, Circle = 1 } [Table(Name = "Shape")] [InheritanceMapping(Code = ShapeType.Square, Type = typeof(Sq
InheritanceMappingAttribute
atribute的code
属性的用途是什么?
文档说明它与IsDiscriminator
属性相关。但是,我也不知道IsDiscriminator
属性
我正在读这个例子:
public enum ShapeType
{
Square = 0, Circle = 1
}
[Table(Name = "Shape")]
[InheritanceMapping(Code = ShapeType.Square, Type = typeof(Square),
IsDefault = true)]
[InheritanceMapping(Code = ShapeType.Circle, Type = typeof(Circle))]
abstract public class Shape
{
[Column(IsDiscriminator = true)]
public ShapeType ShapeType = 0;
}
public class Square : Shape
{
[Column]
public int Side = 0;
}
public class Circle : Shape
{
[Column]
public int Radius = 0;
}
就我而言,我有三个表,个人
,客户
,职员
。三类人(摘要)、客户
和工作人员
。也就是说,在Person
表中,是Client
和functional
之间的公共数据。在客户机
表中是客户机
的数据。在职员
表中是职员
的数据
在这种情况下如何配置映射?使用EF6,您不必配置映射。只需创建类,其余的就由EF完成
public abstract class Person
{
public int Id { get; set; }
}
[Table("Clients")]
public class Client : Person
{
}
[Table("Functionaries")]
public class Functionary : Person
{
}
EF创建3个表并设置关系
添加类型
context.Persons.Add(new Client());
context.Persons.Add(new Functionary());
您可以使用
Persons.OfType<Client>()
Persons.OfType()
使用EF6,您不必配置映射。只需创建类,其余的就由EF完成
public abstract class Person
{
public int Id { get; set; }
}
[Table("Clients")]
public class Client : Person
{
}
[Table("Functionaries")]
public class Functionary : Person
{
}
EF创建3个表并设置关系
添加类型
context.Persons.Add(new Client());
context.Persons.Add(new Functionary());
您可以使用
Persons.OfType<Client>()
Persons.OfType()