1

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

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

4

3 回答 3

1

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

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

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

...以及您的所有财产。

于 2009-10-14T11:04:17.610 回答
1

正如其他回答者已经指出的那样,您确实可以生成代码 - 到单个 (modelname).designer.cs 文件中。

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

如果没有,至少有一组代码生成模板,称为PLINQO,它基于众所周知的代码生成器 CodeSmith。这些模板允许你做很多标准 Linq-to-SQL 不支持的事情:

  • 将每个表的类生成到用户可定义文件夹中自己的单个文件中
  • 如果底层数据库发生变化,实际更新您的 DBML 模型和所有相关生成的类
  • 添加“(entityname)Manager”类来管理给定类型的实体(如客户等)

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

马克

于 2009-10-14T12:40:46.200 回答
0

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

于 2009-10-14T11:08:10.587 回答