我可以从数据库生成 EF 模型并让所有模型实现一个接口吗?
我有一个现有的 SQL 数据库,其中所有表都有一个 ID 列作为主键。我可以从此数据库生成实体框架模型并确保所有生成的类型都继承自定义 ID 属性的接口吗?
基本上,我希望从数据库返回的所有内容都可以实现此目的:
public interface IDatabaseTable
{
public int ID { get; set; }
}
I have an existing SQL Database in which all tables have an ID column as the primary key. Can I generate an Entity Framework Model from this database AND make sure all the generated types inherit from an interface that defines the ID property?
Basically, I want everything that I return from the database to implement this:
public interface IDatabaseTable
{
public int ID { get; set; }
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我希望您使用EntityFramework 4,如果您需要使用T4模板来生成实体和数据上下文,您可以从这里下载
http://visualstudiogallery.msdn.microsoft.com/23df0450-5677-4926-96cc-173d02752313
比当你设置它时,你需要修改T4模板来生成继承。
因此,您将获得两个模板,一个模板用于生成数据上下文,另一个模板用于生成实体。
您需要修改第二个(实体生成器模板),转到实体 .tt 文件的第 41 行并在其中添加您的继承,如下所示:
您可能会在此处找到有关 T4 POCO 模板的一些详细信息
http://sharedtolearn.blogspot.com/2010/06/entity-framework-40-and-t4-templates-to.html
http://msdn.microsoft.com/en-us/data/gg558520
I hope you using EntityFramework 4 if so you need to use T4 templates to generate your entity and data context, you may download that from here
http://visualstudiogallery.msdn.microsoft.com/23df0450-5677-4926-96cc-173d02752313
Than when you get it setup you would need to modify T4 template to generate inheritance.
So you would get two tamplates one template which is generating Data Context and other one which is generating Entities.
You need to modify the second one(entity generator template), go to line 41 of your entity .tt file and add your inheritance there like that:
Some details on T4 POCO tamplates you may find here
http://sharedtolearn.blogspot.com/2010/06/entity-framework-40-and-t4-templates-to.html
http://msdn.microsoft.com/en-us/data/gg558520
有关部分类的信息,请参阅此 MSDN 页面 。
简而言之,您可以为 EF 实体创建一个分部类并实现您想要的任何接口。
以下是 MSDN 页面上的文档:
以下内容合并自所有部分类型定义:
例如,考虑以下声明:
它们等效于以下声明:
See this MSDN page about partial classes.
In short, you can create a partial class for your EF entities and implement whichever interfaces you'd like.
Here's the documentation from the MSDN page:
The following are merged from all the partial-type definitions:
For example, consider the following declarations:
They are equivalent to the following declarations: