簡體   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