繁体   English   中英

如何使用实体框架C#创建和插入一对多对象

[英]How do I create and insert one-to-many object with entity framework c#

我正在尝试创建一个对象并将其插入数据库,但是无论我尝试如何,都会不断遇到相同的错误。 我收到错误的行是ColumnGroupTest.ValidValues.Add(memberComment1); 错误是

错误信息

用户代码未处理NullReferenceException

我的模特

    public class StoreColumnName
    {
        public int Id { get; set; }
        public string StoreColumnGroupName { get; set; }
        public string ColumnName { get; set; }
        public string ColumnType { get; set; }
        public List<StoreValidValue> ValidValues { get; set; }
    }

    public class StoreValidValue
    {
        public int Id { get; set; }
        public string ValidValue { get; set; }
        public StoreColumnName StoreColumnName { get; set; }
    }

我的控制器

public ActionResult Index()
    {
        XDocument document = XDocument.Load(@"C:\Users\Physical.xml");
        var result = document.Descendants("ColumnGroup");
        foreach(var item in result){    
                var ColumnGroupName = item.Attribute("name").Value;
                var Columns = item.Descendants("Column");

                foreach (var itemColumn in Columns)
                {
                    StoreColumnName ColumnGroup = new StoreColumnName();
                    var ColumnGroupTest = new StoreColumnName
                    {
                        StoreColumnGroupName = ColumnGroupName, 
                        ColumnName = itemColumn.Attribute("name").Value, 
                        ColumnType = itemColumn.Attribute("type").Value, 
                        Id = 11
                    };
                    var ValidValues = itemColumn.Descendants("ValidValues");
                    var Values = ValidValues.Descendants("Value");

                    foreach (var Value in Values)
                    {
                        var memberComment1 = new StoreValidValue
                        {
                            StoreColumnName = ColumnGroupTest,
                            ValidValue = Value.Value,
                            Id = 101
                        };
                        ColumnGroupTest.ValidValues.Add(memberComment1);
                    }
                }
        }
        return View();
    }

(我很乐意就在寻求帮助/指导时可以改善的地方给出提示)。

有人可以帮忙吗?

您遇到的问题是您没有将ValidValues属性初始化为列表。 默认情况下,除非您另外指定,否则这些类型的属性将初始化为null

最好的方法是将该初始化添加到该对象的构造函数中。

public StoreColumnName() {
    this.ValidValues = new List<StoreValidValue>();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM