Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 4 是否可以将值对象集合映射到EF4.x?_Entity Framework 4_Ef4 Code Only - Fatal编程技术网

Entity framework 4 是否可以将值对象集合映射到EF4.x?

Entity framework 4 是否可以将值对象集合映射到EF4.x?,entity-framework-4,ef4-code-only,Entity Framework 4,Ef4 Code Only,我找不到映射值对象集合的方法,可能吗 public class AnEntity { public int Id {get;set;} public ICollection<Guid> Values {get;set;} // <-- this } 公共类实体 { 公共int Id{get;set;} 公共ICollection值{get;set;}/,因为这是不可能的。您只能映射实体的集合(带键的类)。您可以通过使用特殊实体并公开第二个属性来解决此问题,该属

我找不到映射值对象集合的方法,可能吗

public class AnEntity
{
    public int Id {get;set;}
    public ICollection<Guid> Values {get;set;} // <-- this
}
公共类实体
{
公共int Id{get;set;}

公共ICollection值{get;set;}/,因为这是不可能的。您只能映射实体的集合(带键的类)。您可以通过使用特殊实体并公开第二个属性来解决此问题,该属性将为您提供投影:

public class SecondEntity {
    public Guid Id { get; set; }
}

public class AnEntity {
    public int Id { get; set; }
    public virtual ICollection<SecondEntity> Values { get; set; }

    public IEnumerable<Guid> GuidValues { 
        return Values.Select(v => v.Id);
    }
}
公共类第二实体{
公共Guid Id{get;set;}
}
公共类实体{
公共int Id{get;set;}
公共虚拟ICollection值{get;set;}
公共IEnumerable guidValue{
返回值。选择(v=>v.Id);
}
}

如果您希望集合较小,您也可以使用单个字符串字段而不是相关集合,并使用
string.Split
string.Join
来模拟集合。

这是第二个实体的充分完整定义吗?它不也需要FK字段吗?