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

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合作,不知道如何解决这个问题。 我从这里拿了代码


听起来像返回的Client数据中的Name属性为null。

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

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

另外,如果你要与很多客户合作,并且你的字符串会变大,我建议你看看StringBuilder。

链接地址: http://www.djcxy.com/p/76287.html

上一篇: Entity Framework object reference not set when getting data from table

下一篇: create primary key on existing table without primary key in SQL Server