我收到此錯誤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;組; }' –
然後實體集名稱是「客戶」(末尾不帶)' –