无效列名错误,尽管它存在ASP.NET Core

whhtz7ly  于 2023-10-21  发布在  .NET
关注(0)|答案(2)|浏览(135)

我正在设计一个网上商店(ASP.NET核心6)的会计软件(C# Winforms)。
我开始使用ASP.NET Core和Razor页面。
我是新手,在这方面没有经验。会计软件在SQL Server中有许多表,这些表相互关联。我试着只为我的项目所需的表格建模。
但是当与所需的表通信时,得到以下错误:(。
列名“MobileNo”无效。
列名“BankAccountNumber”无效。
列名“BankBranch”无效。
列名称“删除日期”无效。
列名“BrithLocation”无效。
....
我知道这个错误是由于所需表与其他表的关系造成的。
因为在其他类似的情况下,当我定义第二个表和关系时,这个错误就解决了。

....
public string UserID { get; set; }
....
[ForeignKey(nameof(UserID))]
public virtual SalCustomer users { get; set; }
....

但是我遇到了一个与其他表(不需要的表)非常相关的表。
我觉得创建额外的模型是不对的,我不喜欢将它们添加到我的项目中。
在EF中有没有一种方法可以忽略关系?又不会给会计软件带来麻烦?
因为在我的项目中不需要这些关系。
举例来说:
客户表与税务单据表或支票表与...之间的关系。table太多了。
创建项目中的所有表是否更好,即使我不需要它们?
生成此错误的代码示例。

var accPerson = _context.AccPerson.SingleOrDefault(c => c.mobileNo == SD.userPh1);

我为我糟糕的英语道歉,并提前感谢您的宝贵意见。
我读了这篇文章,但我认为,关系将被完全删除,这可能会导致会计软件的问题。我无法对数据库进行任何更改。因为很多公司和软件都在使用这个数据库。

z31licg0

z31licg01#

当使用Ef核心数据库优先方法时,您可以指定要生成的表。

Scaffold-DbContext 'Connection string' Microsoft.EntityFrameworkCore.SqlServer -Tables Customer, Purchases, Accounts, Contracts

more information on scaffolding
如果你想要更多的控制,你可以学习T4模板是如何工作的(如果你是初学者,可能会有点复杂)
使用T4模板进行逆向工程

7uhlpewt

7uhlpewt2#

正确的选择可能是先创建EF项目数据库。Visual Studio将为您生成模型。因为您无法忽略关系更新数据库行:你会把哪些值放在外键属性中?

相关问题