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 转载请标明出处