2013-01-21 102 views
4

我的团队正在使用数据库优先方法在ASP.NET MVC 4中编写大型商业网站。有谁知道是否可以根据数据库模式自动生成数据注释?当框架应该知道数据库列的属性并使其成为它生成的POCO类的一部分时,手动编写包含数据注释的“伙伴”元数据类似乎是多余的。任何建议将不胜感激!ASP.NET实体框架可以自动生成数据注释吗?

+0

这是一个有趣的问题,原因很多。在深入研究带有数据注释的Buddy类和实体之前,请问自己多久你会发现自己使用实体作为表示层。我经常发现我使用自定义模型b/c,我的视图很少像我的数据一样简单。 –

+0

戴夫 - 你是说你一般不使用实体框架自动生成的模型? – themuzz

+0

正确,我通常不使用EF实体查看模型。更经常地,我创建的模型包含类似但更适合视图的实体或模型。 –

回答

1

看看LINQ to SQL。 您可以使用它通过从服务器资源管理器中拖动表格在图形编辑器中创建.dbml文件。

这里的MSDN How to: Create LINQ to SQL Classes in a Web Project

+0

谢谢,我只有LINQ to SQL的最少知识,所以我会做一些调查。 – themuzz

+0

我为你添加了一个链接。 – flup

+0

很好的链接。良好的资源。 –

1

1)框架并基于表结构推断数据的注释的一个很好的工作,但他们不会是完美的。

2)遗憾的是,当你想要定制更多的框架时,你会被困在Buddy类中。他们有点乏味,但迄今为止,我发现了用于定制数据注释的最佳方法。

3)我经常发现自己倾向于定制课程,而不是生成POCO的课程。原因通常是存储和显示的区别。在输入屏幕上

  1. 我会经常把手机分成3个文本框。
  2. 查找外键需要选择列表(通常添加到模型中)。
  3. 通常我会通过其他值可能是有关我的查看功能,但不特定的存储表(显示区域,导航/面包屑)
0

使用的数据库实体框架优先的方法。 您可以使用实体数据模型向导从现有数据库生成实体模型。 见http://msdn.microsoft.com/en-us/data/jj206878

+0

这就是我们一直在做的事情,不幸的是,它不会自动将数据注释添加到基于数据库模式的模型中。这真的很糟糕。=) – themuzz

+0

包含DBContext生成器? – flup

+0

它似乎没有。我使用DbContext生成器创建了一个快速项目,除了Nullable之外,没有从模式中收集到其他属性。除非我做错了什么... – themuzz