今天尝试用.Net3.5架构网站,发现一个问题,使用LINQ操作数据库,LINQ操作属哪层呢?

假如光使用一种数据库,那么把LINQ放在数据层是没有问题,然后再对LINQ数据进行包装,就可以使用了。但是如果使用工厂进行多种数据库部署的话,问题来了,如果把LINQ放在数据层,那么IDAL将无法得到Model类型,工厂将无法返回数据类型。因为数据层肯定要引用IDAL,实现IDAL定义的接口,而同样工厂在配置取得的结构恰恰是IDAL定义的接口。也就是说IDAL至少同时被Factory和数据层引用,但是IDAL必须引用Model以便能使用对象。问题就出在LINQ的Model恰恰被封装在了*.dbml文件里了。

经过一番思考,我认为*.dbml文件只能被封装在Model层中,虽然带来了不良反应——任何层都有直接操作数据的能力。但是实在是没有办法的事情,要么就只能另外再定义一次Model,但那样已经带来了大量的额外工作量。

大家有什么看法呢?

DLINQ *.dbml文件该属于哪一层相关推荐

  1. Dbml文件提取建表TSql-CodeSmith

    在昨天一个大学师弟,他问我能不能将LinqToSql文件转化为创建表的TSql语句,他是刚开始学习.NET,所以在网上下些示例看,但苦于没有数据库.所以就有了这一篇博客,作为我的Code生成技术的Co ...

  2. 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~四 分部方法从另一方面定义了类型的操作规范...

    一 DBContext的构造方法,方法的重载 二 DBContext实例中,表实体对象是怎么被加入的 三 分部类是否破坏了单一职责 四 分部方法从另一方面定义了类型的操作规范 五 LINQ实体类中对属 ...

  3. 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~二 DBContext实例中,表实体对象是怎么被加入的...

    一 DBContext的构造方法,方法的重载 二 DBContext实例中,表实体对象是怎么被加入的 三 分部类是否破坏了单一职责 四 分部方法从另一方面定义了类型的操作规范 五 LINQ实体类中对属 ...

  4. 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~三 分部类是否破坏了单一职责...

    一 DBContext的构造方法,方法的重载 二 DBContext实例中,表实体对象是怎么被加入的 三 分部类是否破坏了单一职责 四 分部方法从另一方面定义了类型的操作规范 五 LINQ实体类中对属 ...

  5. 光脚丫学LINQ(025):如何验证DBML和外部映射文件

    视频演示:http://u.115.com/file/f2604631a 此演示视频主要演示了如下两方面的内容: 1.如何使用VS提供的架构文件来验证DBML文件和XML外部映射文件. 2.如果计算机 ...

  6. 解决Visual Studio 2008 下,打开.dbml(LINQ) 文件时,提示The operation could not be completed. 的问题。...

    环境:XP sp3, Visual Studio2008 sp1 错误现象:打开.dbml(LINQ) 文件,提示 "The operation could not be completed ...

  7. c++:文件操作1 文件的打开

    在程序中,要使用一个文件,先要打开文件后才能读写,读写完后要关闭.创建一个新文件也要先执行打开(open)操作,然后才能往文件中写入数据.C++ 文件流类有相应的成员函数来实现打开.读.写.关闭等文件 ...

  8. 编码,深浅拷贝和文件操作

    三.再谈编码 小数据池,  常量池, id() 查看变量的内存地址 is和== is 判断内存地址是否一致 == 判断内容是否一致 小数据池的作用: 为了快速的创建字符串对象, 可以减少内存的浪费 用 ...

  9. java递归url目录_Java递归实现某个目录下所有文件和目录

    import java.io.File; import java.util.ArrayList; public class Test1// 实现打印某个目录下的所有文件和目录,要目录在上,文件在下,每 ...

最新文章

  1. Ubuntu解决Nvidia驱动缺失导致的HDMI无法输出问题
  2. linux socket 端口复用 SO_REUSEADDR
  3. FSM(状态机)、HFSM(分层状态机)、BT(行为树)的区别
  4. 如何禁止网络爬虫频繁爬自己网站
  5. python数据库连接池使用
  6. jQuery(爱前端)
  7. dedeCMS 静态页面的倒计时插件(原生VS自定义)
  8. 人体识别_电子皮肤用于人体状态识别的柔性集成传感器
  9. B站,N站,汤站,爬虫下载资源总结与技巧(一)
  10. 微信小程序入门 ——增删改查+页面跳转+传值取值+布局样式
  11. [luoguP2147] [SDOI2008]Cave 洞穴勘测(并查集 || lct)
  12. wubi for ubuntu 9.04 无法运行
  13. 毕设过程中使用WPS的自定义生成目录中混入图片等非相关元素
  14. 【Firefly云手机】最高可虚拟720台手机,支持一键操控,应用多开
  15. Unity Shader入门精要 第2章 读书笔记
  16. 语c语言描写,【自由の翼】语c介绍
  17. 无线网技术——知识点
  18. 在javascript中重新加载/刷新页面的不同方法
  19. 网易之小易最近在数学课上学习到了集合的概念,集合有三个特征:1.确定性 2.互异性 3.无序性.需要根据给定的w,x,y,z,求出集合中一共有多少个元素。
  20. 监控服务器时间无法修改怎么办,监控系统时间不对,怎么样修改,谢谢!

热门文章

  1. phone clone android,Phone Clone
  2. php 字符 hash_php常用hash加密函数
  3. java 原子量_Java線程:新特征-原子量
  4. 两者相差百分比怎么算_不知道烘焙百分比的全拖出来打屁股!
  5. Unix/Linux提权漏洞快速检测工具unix-privesc-check
  6. OUYA游戏开发核心技术剖析大学霸内部资料
  7. Transform组件C#游戏开发快速入门
  8. java中d怎样转换D,Java中的一些基本转换
  9. java tree json_treePanel json java后台
  10. 能打造新型CPU的有机分子元件登Nature,用if语句攒出决策树,一个顶数千晶体管...