entity-framework - Entity Framework 、继承和命名空间

标签 entity-framework inheritance namespaces

我正在使用 Entity Framework 4.0,并且有一个大量使用继承的概念模型。

我可以很好地执行标准继承功能,但我在生成的 C# 类的命名空间方面遇到了问题。

我的问题是 Entity Framework 总是在 中生成所有类(包括基类和派生类)。同 C# 命名空间。由 Entity Framework (包括基类和派生类)生成的类的完全限定名称的假设示例,其根命名空间为“MyApp”,如下所示

MyApp.MyBaseClass
MyApp.MyDerivedClassA
MyApp.MyDerivedClassB
MyApp.MyDerivedClassC
etc...

但是,我想将基类和派生类放入不同 命名空间。例如,基类仍将在根命名空间(例如 MyApp)中定义,但派生类将在“子命名空间”(例如 MyApp.MyDerivedClasses)中定义。派生类的完全限定名称将如下所示:
MyApp.MyDerivedClasses.MyDerivedClassA
MyApp.MyDerivedClasses.MyDerivedClassB
MyApp.MyDerivedClasses.MyDerivedClassC
etc...

我设法通过手动创建(即不使用 Linq To Sql 设计器)使用 Linq To Sql 实现了这一点InheritanceMappingAttribute在基类上并将映射指向在“派生”命名空间中定义的派生类。

但是,我不知道是否可以在带有或不带有设计器的 Entity Framework 4.0 的基类和派生类之间使用不同的命名空间。这可以做到吗?如果可以,我该怎么做?

最佳答案

不,使用标准工具集是不可能的。
设计器文件上的命名空间规范适用于其中包含的所有实体。
你可以尝试代码优先的方法来解决这个问题(prolly 你最好的选择)。除此之外,获取一本关于 T4 模板的好书并修改 T4 POCO 生成器以让您指定这些内容。

关于entity-framework - Entity Framework 、继承和命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4171964/

相关文章:

.net - 导航属性 'SenderId' 不是类型 'Conversation' 上的声明属性

javascript - 使用 Entity Framework 和 Jquery 在同一 View 中从右向左传递数据的图片库

xml - 将命名空间添加到 xml 时使用 xslt 解析 xml 失败

asp.net - 相同命名空间中的相同类名

c# - Entity Framework 5 中的 ExecuteStoreCommand 方法在哪里?

entity-framework - .net core Entity Framework 两种关系可以使用相同的外键

mongodb - Symfony2 MongoDB 原则继承

java - Java中可以扩展方法吗?

c++ - 检测方法是否被覆盖

variables - 从导入的过程访问 Tcl 命名空间变量