Mat*_*att 4 c# datacontext entity-framework
我有一个简单edmx的 2 张桌子。这些表由单个Navigation Property. (一对多)。
当我运行我的代码时,我得到一个异常:“无效的对象名称 dbo.Enquiries”
dbo.Enquiries数据库中没有(实际上称为dbo.Enquiry),因此错误本身是不言自明的。但是它在哪里找到该名称,我该如何修复它?
编辑以按要求显示代码。
var foo = (from d in context.Dealerships
join e in context.Enquiry
on d.Id equals e.DealershipId
where (d.ParentBusinessId == id)
select d).AsEnumerable();
Run Code Online (Sandbox Code Playgroud)
这是生成的sql。
foo {SELECT
[Extent1].[Id] AS [Id],
[Extent1].[BusinessName] AS [BusinessName]
FROM [dbo].[Dealerships] AS [Extent1]
INNER JOIN [dbo].[Enquiries] AS [Extent2] ON [Extent1].[Id] =
[Extent2].[DealershipId]
WHERE [Extent1].[ParentBusinessId] = @p__linq__0}
Run Code Online (Sandbox Code Playgroud)
但是对于我的生活,我看不出在哪里/如何决定将内部联接的名称查询更改为查询。
找到答案。Pluralise 仅适用于模型生成。我必须明确告诉我的 DbContext 不要将名称复数化(我不敢开始重命名这个数据库,所以我坚持使用的奇怪约定。)
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1295 次 |
| 最近记录: |