EF 4.1 Code First不会为List <string>创建列

Cla*_*ren 13 code-first entity-framework-4.1

我一直在玩EF4 Code First,我很喜欢它.但是,我似乎无法将这个简单的排序.

尝试创建这样的东西时,我的数据库中没有创建任何列:

    public IList<String> Recievers { get; set; }
    public List<String> RecieversTest { get; set; }

    public virtual List<String> RecieversAnotherTest { get; set; }
    public virtual ICollection<Int32> RecieversAnotherTest { get; set; }
Run Code Online (Sandbox Code Playgroud)

我试过Annotations将它映射到一个不同的列名,我尝试了IEnumerable和各种其他集合,但它拒绝为它创建一个列.

在谷歌上一个小时后,我找到了一个声称自己已经做过的人,但我开始怀疑这一点.它应该可能吗?

我真的不明白为什么它不会创建一个列并使用JSON或CSV.它不可能那么罕见,可以吗?在我的情况下,我只想存储一个电子邮件列表.

我错过了什么?该项目创建所有其他类型没有问题,我已经检查了数据库,看看我添加到测试的其他属性是如何创建的,而这些属性被忽略.

所以问题必然在于我缺少的一些设置或一些配置....在SQL Server 2008 db上的EF 4.1 RTW.

Lad*_*nka 20

我有个坏消息.EF没有做那样的事情.如果你想要任何序列化和反序列化你必须自己做=你必须使用序列化值公开和映射属性:

private IList<String> _receivers;
// This will be skipped
public IList<String> Receivers 
{ 
    get
    {
        return _receivers;
    }
    set
    {
        _receivers = value;
    } 
}

// This will be mapped
public string ReceiversSer
{
    get
    {
        return String.Join(";", _receivers);
    }
    set
    {
        _receivers = value.Split(';').ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在ReceiversSer将映射到数据库中的列.