vs2012 web应用程序中App_Code文件夹添加Linq to sql类的问题

建了一个简单三层项目,BLL DAL MODEL ,WEB是用的web应用程序

现在问题来了 App_Code 中添加一个linq to sql类,在defaul.aspx中添加一个 linqDataSource数据源控件 根本就找不到这个类。

如果把DataClasses6.dbml的生成操作 由内容改为编译,会出现以下错误

而在web项目下直接添加linq to sql类 则没有问题 或者添加一个文件夹linq 内再添加linq to sql类 也没有问题

但是需要手动指定linqDataSource的ComtextTypeName 属性Web.linq.DataClasses5DataContext

思考:

  1.App_code文件夹内的类是动态编译的,而且每次编译后的文件名都不一样,所以添加的linq to sql类找不到(这个是结果),

    哪里的设定 这个设定是否可以更改App_Code文件夹的这个特性?

2.新建web应用程序,App_Code文件夹中添加的linq to sql类找不到来使用,而且改成编译会报错,但是新建网站 却完全正常,为何?

结论就是vs2012如果新建web应用程序,千万别去建立一个App_Code文件夹并在其中添加一个linq to sql类,至少我还没找到解决办法

臆测要解决这问题需要修改一下那个生成代码的模板

3.linq to sql类直接复制一份到DAL层中 稍微修改下命名空间之类的东西,就可以正常使用(linqDataSource控件可以找到这个数据上下文),

由此可以推出,自己建立一个datacontext类 一样能被数据控件找到,可以实现自定义的方法,比如LINQ的各种强大的排序 数据筛选等。

4.分析下linq to sql类文件,里面有各种实体类,扩展类和方法,这个ORM其实是个混合的层,接下来看看如何拆分成三层,有待实验。

 

最终,我达到了自己做这个小实验的目的,但是尚有疑惑,遂记之,盼高手解惑

如有疑问或交流 请发邮件到445827@qq.com 转载请标明出处

posted @ 2014-04-21 19:29  x_window  阅读(799)  评论(0编辑  收藏  举报