代码之家  ›  专栏  ›  技术社区  ›  Younes

使用DBML设置业务逻辑层

  •  0
  • Younes  · 技术社区  · 14 年前

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

    • 我已经在一个解决方案中构建了一个新项目,在这个解决方案中我不能使用C,因为它都是vb.net。
    • 我已经为未来应用程序中要使用的每种类型的实体制作了DBML。

    现在我正在研究业务逻辑层。我的应用程序中必须使用的每种类型都有DBML。例如,我有一个叫做“关系”的DBML。现在,我想设置BLL功能,以返回基于searchString输入的关系列表。 现在,我应该实现一个名为relations.cs的类,并添加构造函数逻辑等,然后列出这种类型并返回这个列表,还是应该只使用relations 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定义的类型,我可能只是可以使用它。 那么,我应该实现自己的关系类并利用DBML吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Steven    14 年前

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

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