为了账号安全,请及时绑定邮箱和手机立即绑定

实体框架-代码优先-无法存储List <String>

实体框架-代码优先-无法存储List <String>

慕妹3242003 2019-10-19 14:37:12
我写了这样的课:class Test{    [Key]    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]    public int Id { get; set; }    [Required]    public List<String> Strings { get; set; }    public Test()    {        Strings = new List<string>        {            "test",            "test2",            "test3",            "test4"        };    }}和internal class DataContext : DbContext{    public DbSet<Test> Tests { get; set; }}运行后代码:var db = new DataContext();db.Tests.Add(new Test());db.SaveChanges();我的数据正在保存,但只是Id。我没有适用于“ 字符串”列表的任何表或关系。我究竟做错了什么?我也尝试过制作Strings, virtual但是它什么都没有改变。谢谢您的帮助。
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

我知道这是一个古老的问题,Pawel提供了正确的答案,我只想显示一个代码示例,该示例演示如何进行一些字符串处理,并避免为原始类型的列表使用额外的类。


public class Test

{

    public Test()

    {

        _strings = new List<string>

        {

            "test",

            "test2",

            "test3",

            "test4"

        };

    }


    [Key]

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]

    public int Id { get; set; }


    private List<String> _strings { get; set; }


    public List<string> Strings

    {

        get { return _strings; }

        set { _strings = value; }

    }


    [Required]

    public string StringsAsString

    {

        get { return String.Join(',', _strings); }

        set { _strings = value.Split(',').ToList(); }

    }

}


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 654 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信