我收到此错误EF代码第一:EntitySet的名称“TestDBContext1.Customers”找不到
Additional information: The EntitySet name 'TestDBContext1.Customers' could not be found.
我试图调用SQL Server存储过程返回多个结果集。
这是我的全码:
private void button4_Click(object sender, EventArgs e)
{
using (var db = new TestDBContext1())
{
db.Database.Initialize(force: false);
// Create a SQL command to execute the stored procedure
var cmd = db.Database.Connection.CreateCommand();
cmd.CommandText = "[dbo].[MultiResultSet]";
try
{
db.Database.Connection.Open();
// Run the stored procedure
var reader = cmd.ExecuteReader();
// Read Blogs from the first result set
var customers = ((IObjectContextAdapter)db)
.ObjectContext
.Translate<Customer>(reader, "Customers", MergeOption.AppendOnly);
foreach (var item in customers)
{
Console.WriteLine(item.FirstName);
}
// Move to second result set and read Posts
reader.NextResult();
var Addresses = ((IObjectContextAdapter) db)
.ObjectContext
.Translate<Addresses>(reader, "Addresses", MergeOption.AppendOnly);
foreach (var item in Addresses)
{
Console.WriteLine(item.Address1);
}
}
finally
{
db.Database.Connection.Close();
}
}
}
此行抛出上述错误:
var customers = ((IObjectContextAdapter)db)
.ObjectContext
.Translate<Customer>(reader, "Customers", MergeOption.AppendOnly);
我的数据库表是Customers
和Addresses
。为什么我得到这个错误?在我的代码中更改什么?
有趣的是,当我像下面的方式编码,然后一切正常。
var customers = ((IObjectContextAdapter)db)
.ObjectContext
.Translate<Customer>(reader);
的那一刻,我从代码中删除"Customers", MergeOption.AppendOnly
然后代码工作正常。只是不明白我上面的代码中有什么问题。请有人帮我理解这一点。谢谢
你有'公共DbSet客户{获得;组; }'在你的'TestDBContext1'类中? –
yes public'public DbSet Customer {get;组; }' –
然后实体集名称是“客户”(末尾不带)' –