gpt4 book ai didi

c# - EF 检索数据时出错 : wrong table name in SQL

转载 作者:太空狗 更新时间:2023-10-30 01:22:02 25 4
gpt4 key购买 nike

我有一个带有 2 个表的简单 edmx。这些表通过单个 Navigation Property 关联。 (1 到多)。

当我运行我的代码时,我得到一个异常:“无效的对象名称 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();

这是生成的 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}

但就我的生活而言,我看不出它决定在何处/如何决定将名称 Inquiry 更改为 Inner Join 上的 Inquiries。

最佳答案

找到答案。 Pluralise 仅用于模型生成。我必须明确告诉我的 DbContext 不要将名称复数化(我不敢开始重命名这个数据库,所以我坚持使用的奇怪约定。)

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}

关于c# - EF 检索数据时出错 : wrong table name in SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14647951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com