使用DBML设置业务逻辑层

时间:2010-05-26 06:52:26

标签: c# .net linq-to-sql class constructor

我正忙着制作业务逻辑层。现在我遇到了一个问题,因为我想使用c#编程,整个项目我必须创建一个基于vb.net的模块。我已经使用解决方案中的新项目解决了这个问题。该项目将维护数据类和业务逻辑。现在我遇到了一个问题,至少我不知道该怎么做。 这就是我到目前为止所做的:

  • 我在一个解决方案中构建了一个新项目,我无法使用C#,因为它都是vb.net
  • 我为我将来的应用程序中使用的每种类型的实体制作了dbml。

现在我正在开发业务逻辑层。我有必须在我的应用程序中使用的每种类型的dbml。例如,我有一个名为“Relations”的dbml。现在我想设置BLL功能,根据搜索字符串输入返回一个关系列表。 现在我应该实现一个名为Relations.cs的类并添加构造函数逻辑等并创建此类型的列表并返回此列表,或者我应该只使用关系dbml中的Datacontext并使用linq返回qry类型的列表喜欢下一行的代码吗?

List<QRY_HOSTING_Relaty> relatieLijst = (
    from QRY_HOSTING_Relaty res 
    in dcRelaties.QRY_HOSTING_Relaties
    select res).ToList<QRY_HOSTING_Relaty>();

我不确定我是否必须制作自己的类型,而我已经有我的dbml定义的类型,我可能只是可以使用。 那么,我应该实现自己的Relations类并使用dbml的吗?

1 个答案:

答案 0 :(得分:1)

每个数据库/域通常应该有一个单独的DBML文件。您不应该为每个表/类/实体创建DBML,因为这将为每个类创建一个DataContext。这样做会让你失去LINQ to SQL的大部分有用功能,比如内存事务(工作单元)和对多个实体进行LINQ查询。

通常不需要创建自己的类型来包装LINQ to SQL生成的类。典型用法是:在数据库中创建表(具有适当的关系);创建DBML并在DBML上拖动所有需要的表;更改表格和列名称是合适的。