从表中获取数据时未设置实体框架对象引用

时间:2014-04-24 11:10:51

标签: c# entity-framework

command = "INSERT INTO clients VALUES(" + NameTB.Text +")";
objCtx.SaveChanges();

List<Client> clients = new List<Client>();
clients = objCtx.ExecuteStoreQuery<Client>("Select * from clients").ToList();

string x = "";
for (int i = 0; i < clients.Count; i++)
     x += clients[i].Name.ToString();//exception here

MessageBox.Show(x);

我刚刚开始使用EF并且不知道如何解决这个问题;我从here

中获取了代码

1 个答案:

答案 0 :(得分:1)

在返回的Name数据中,Client属性为null。

要么在数据库中有一个需要该字段的约束,要么添加一个空检查:

string x = "";
for (int i = 0; i < clients.Count; i++) {
     if (!String.IsNullOrEmpty(clients[i].Name)) {
          x += clients[i].Name.ToString();
     }
}

此外,如果您要与许多客户合作并且您的字符串变大,我建议您查看StringBuilder