gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 16:58:21 25 4
gpt4 key购买 nike

我正在使用 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/

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