如何使用实体的EntityFramework可扩展字段进行建模

时间:2015-06-03 14:27:55

标签: c# entity-framework

我有以下要求,在我的应用程序中,实体将带有一些字段,但是用户需要能够向实体添加其他字段,然后为这些字段添加值。

我在想这样的事情,但我不确定这是不是一个好方法。

基类是一个实体(不确定我需要在这里添加哪些字段)

var i

然后公司类将继承自实体

public class Entidad
{
}

正如您所看到的,还有一个ICollection的附加字段。该类将具有fieldname,type和id

public class Empresa : Entidad
{
    [Key]
    public int Id { get; set; }
    public string Nombre { get; set; }
    public string NIT { get; set; }
    public string NombreRepresentanteLegal { get; set; }
    public string TelefonoRepresentanteLegal { get; set; }
    public string NombreContacto { get; set; }
    public string TelefonoContacto { get; set; }

    public ICollection<CampoAdicional> CamposAdicionales { get; set; }
}

然后字段值将是这样的:

public class CampoAdicional
{
    [Key]
    public int Id { get; set; }
    public string NombreCampo { get; set; }
    public Tiposcampo TipoCampo { get; set; }
}

但是我不确定这是否是我的方案的正确模型类,以及它是否会正确创建表。

1 个答案:

答案 0 :(得分:1)

EF适用于延迟加载,所以至少有几个&#34;虚拟&#34; missings。 在所有不使用基本类型和集合的属性中。

您可以使用其他字段扩展多个实体吗?如果是这样,您需要ValorCampo包含实体(Entidad),但实体应具有Id,因此您需要将Id从Empresa移动到Entidad。否则你需要ValorCampo应该引用Empresa而不是Entidad