LINQ to SQL设计器输出

时间:2013-08-31 17:07:34

标签: c# linq-to-sql

我有我的数据库(称为“Starship”),我使用设计器生成LinqToSql实体类和数据上下文。作为输出,我得到了包含2个子文件的Starship.dbml文件:

  1. Starship.dbml.layout
  2. Starship.designer.cs
  3. 问题是我发现设计人员在这个单一文件中生成了我的实体类和数据上下文:Starship.designer.cs

    [global::System.Data.Linq.Mapping.DatabaseAttribute(Name="Starship")]
    public partial class StarshipDataContext : System.Data.Linq.DataContext
    
    [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Roles")]
    public partial class Role : INotifyPropertyChanging, INotifyPropertyChanged
    
    [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Sections")]
    public partial class Section : INotifyPropertyChanging, INotifyPropertyChanged
    
    [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.CrewMembers")]
    public partial class CrewMember : INotifyPropertyChanging, INotifyPropertyChanged
    

    好吧,我一直认为为单个类保留单个文件是一个很好的做法,那么为什么这些类在同一个文件中呢?我想如果数据库由大约20个表组成,那么这将是一个巨大的文件。有没有办法在单独的文件中生成它们?

2 个答案:

答案 0 :(得分:1)

当您需要阅读和更新此类代码时,单个类的单个文件是很好的做法。对于生成的代码,这并不重要。通常你不应该查看这个文件,而是查看模型布局。 另一方面,在单个文件中生成它比在许多文件中更简单。

答案 1 :(得分:1)

据我所知,VS中没有选项告诉ORM-Designer在单独的文件中生成类。将它们全部放在一个文件中更容易。您可以手动将类提取到文件中,并仍然可以正常使用它们。