如何使用 entity framework c# 创建和插入一对多对象
How do I create and insert one-to-many object with entity framework c#
我正在尝试创建一个对象并将其插入到数据库中,但无论我尝试什么,总是出现相同的错误。
我收到错误的行是 ColumnGroupTest.ValidValues.Add(memberComment1);错误是
错误信息
NullReferenceException was unhandled by user code
我的模特
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();
}
(我很乐意在此处询问 help/guiding 时就我可以改进的地方提出建议)。
有人能帮忙吗?
您遇到的问题是您没有将 ValidValues
属性 初始化为列表。默认情况下,这些类型的属性初始化为 null
,除非您指定不同。
最好的方法是将该初始化添加到该对象的构造函数中。
public StoreColumnName() {
this.ValidValues = new List<StoreValidValue>();
}
我正在尝试创建一个对象并将其插入到数据库中,但无论我尝试什么,总是出现相同的错误。 我收到错误的行是 ColumnGroupTest.ValidValues.Add(memberComment1);错误是
错误信息
NullReferenceException was unhandled by user code
我的模特
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();
}
(我很乐意在此处询问 help/guiding 时就我可以改进的地方提出建议)。
有人能帮忙吗?
您遇到的问题是您没有将 ValidValues
属性 初始化为列表。默认情况下,这些类型的属性初始化为 null
,除非您指定不同。
最好的方法是将该初始化添加到该对象的构造函数中。
public StoreColumnName() {
this.ValidValues = new List<StoreValidValue>();
}