c# - 从 Entity Framework 中的 POJO 类中删除导航属性

标签 c# sql entity-framework ado.net foreign-keys

我正在使用生成的 POCO 类和 Entity Framework 。

为了使代码不那么复杂,我试图从代码中删除所有导航属性,同时仍将外键约束保留在数据库中(导航属性弊大于利)。

如果我从 POCO 类中手动删除它们,我会收到以下错误

The entity type UserEntity is not part of the model for the current context

如果我尝试从 .edmx 文件中删除它们,我会收到以下错误:

Error 3 Error 3015: Problem in mapping fragments starting at lines 479, 562:Foreign key constraint 'fk_StorageContracts_User1' from table StorageContract (OwnerUserID) to table User (ID):: Insufficient mapping: Foreign key must be mapped to some AssociationSet or EntitySets participating in a foreign key association on the conceptual side.

有没有办法在不删除相应 FK 的情况下从 POCO 类中删除导航属性?

最佳答案

我知道这是旧的,但是,由于仍然没有答案,我想我会试一试:

我仍在 EF 4.0 中工作,但是,按照您提到的示例,您有一个 xxxModel.tt。如果您愿意对其进行调整,您可以找到它生成导航属性的位置并将它们更改为简单的自动属性。我有一个类似的项目,我是这样生成它们的:

public List<NavDataX> NavDataXs
{
    get; set;
}

现在,它们仍然存在,但在您明确设置它们之前它们都是空的。这样做,我没有弄乱 EDMX,也没有遇到你提到的两个错误。

关于c# - 从 Entity Framework 中的 POJO 类中删除导航属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10450257/

相关文章:

c# - Asp.net Paypal 返回 Url 要求

mysql - 你如何在 mysql select 语句中使用 OR LIKE?

sql - GROUP BY 但从其他列中获取所有值

c# - 忽略上下文更新中的空值

c# - MediatR 和 SimpleInjector 的依赖范围问题

c# - 将多个 TransformBlock 链接到单个 BatchBlock TPL

c# - 在 .NET Core 中使用端口调用端点时出现无效 URL 异常

c# - 检查列表框项目检查事件奇怪的行为

mysql - 复杂的SQL关系

entity-framework - 联接表中的代码优先Fluent API和导航属性