Visual Web Developer 2008不会自动从Linq生成类

时间:2009-10-14 10:31:03

标签: linq-to-sql visual-studio-express visual-web-developer auto-generate

我是Linq和Visual Web开发人员2008 Express的新手。我在这里看过一些帖子和Scott Guthrie关于设置Linq的帖子,但我有点卡住了,因为这些课程并不像我想的那样自动生成。我已经设置了一个数据库,其中包含一个简单的表(主键为ID,并设置为自动递增)以及其他一些列,并将其拖放到DBML Linq设计器窗格中。该表出现在窗口中,但不会自动生成类。当我右键单击表格并选择“查看代码”时,会显示DataClasses.cs,但我只看到没有方法或属性的部分类。

Linq不应该这样做,还是我(很可能)完全错过了这一点?或者Visual Web Developer 2008 Express中没有此功能?

3 个答案:

答案 0 :(得分:1)

不,你没有遗漏任何东西。这正是它应该如何运作的。转到解决方案资源管理器,展开dbml,然后双击whatever.designer.cs。在底部,你会看到......

[Table(Name="dbo.YourTable")]
public partial class YourTable: INotifyPropertyChanging, INotifyPropertyChanged
{

    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);

...以及所有属性。

答案 1 :(得分:1)

正如其他回答者已经指出的那样,你确实将代码生成 - 放入一个(modelname).designer.cs文件中。

这可能是也可能不是你所期望和想要的 - 如果你能忍受它 - 完美!

如果没有,那里至少有一组名为PLINQO的代码生成模板基于CodeSmith,这是众所周知的代码生成器。这些模板允许您执行标准Linq-to-SQL不支持的许多事情:

  • 将每个表的类生成到用户可定义文件夹中的单个文件中
  • 实际更新您的DBML模型以及所有相关生成的类(如果基础数据库发生更改)
  • 添加“(entityname)Manager”类来管理给定类型的实体(如Customer等)。

总而言之,处理Linq-to-SQL代码生成是一个非常巧妙的解决方案。优秀的东西 - 推荐!

马克

答案 2 :(得分:0)

如上所述,LINQ-To-SQL实际上不会为您生成单独的类文件 - 如果您去编写一些引用其中一个表的类的代码,您会发现它就在那里......