[EF] - 作为DAL层遇到的问题
今天在部署一个经典三层的项目的时候,用到了EntityFramework,碰到几个问题:
在用EntityFramework将数据库导入到DAL层后,在BL层引用该DAL后,在测试项目的时候,想要查询一个表的结果集,但是发现没有平常熟悉的智能提示,我习惯用ToList(),但是这次只能提示没有出现,我以为是因为dll引用的关系,就自己手写了,但是却给我抛出了三个错误:
Error 1 The type 'System.Data.Entity.DbContext' is defined in an assembly that is not referenced. You must add a reference to assembly 'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. F:\Projects\Entity Framework\BL\Order.cs 13 13 BL
Error 2 The type 'System.Data.Entity.DbSet`1<T0>' is defined in an assembly that is not referenced. You must add a reference to assembly 'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. F:\Projects\Entity Framework\BL\Order.cs 15 13 BL
Error 3 'System.Data.Entity.DbSet`1<DAL.Order>' does not contain a definition for 'ToList' and no extension method 'ToList' accepting a first argument of type 'System.Data.Entity.DbSet`1<DAL.Order>' could be found (are you missing a using directive or an assembly reference?) F:\Projects\Entity Framework\BL\Order.cs 15 20 BL
根据提供的信息,发现需要再次引用EntityFramework.dll,去BL的bin目录下查看,发现确实没有EF.dll。然后添加EF.dll到bin下,再次编译就通过了,智能提示也有了。
然后在此运行项目,但是又给报了个错误:
Additional information: No connection string named 'DataBaseFirstDBEntities' could be found in the application config file.
根据提示去DAL的config文件找这个connection string,发现是有的,和构造函数里的那个需要的名称是一样的,感到非常奇怪。怀疑是DAL层的模型可能有问题,就将查询数据库的跨点缩小,在UI层随便call一个BL的方法,让这个方法去驱动DL层里的一个用来测试的方法,这个方法直接实例化一个context对象,然后查询一个表。发现得到了想要的结果。比较两次运行的不同,第一次是在BL层里实例化化了context,然后查询数据库,再根据提示的错误信息,想到可能在BL层里也需要在config文件里配置连接字符串,然后就copy了DAL的字符串到BL,再次运行程序,得到了预期的结果。
网上查了下,发现这个问题还是比较常见的,配置文件在添加引用的时候,是不会被添加到目标项目的。但是为什么在BL层里实例化需要BL层的配置信息就不是很清楚了。有机会需要去了解下。
[EF] - 作为DAL层遇到的问题的更多相关文章
- MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(58)-DAL层重构
系列目录 前言:这是对本文系统一次重要的革新,很久就想要重构数据访问层了,数据访问层重复代码太多.主要集中增删该查每个模块都有,所以本次是为封装相同接口方法 如果你想了解怎么重构普通的接口DAL层请查 ...
- asp.net mvc 简单项目框架的搭建过程(一)对Bll层和Dal层进行充分解耦
学习asp.net 已经有近三个月的时间了,在asp.net mvc上花的时间最多,但个人真是有些菜,不得不说,asp.net mvc的水真的还是蛮深的.目前在公司实习,也见过公司几个项目的代码了.对 ...
- EF 通用数据层类
EF 通用数据层父类方法小结 转载:http://www.cnblogs.com/yq-Hua/p/4165344.html MSSql 数据库 数据层 父类 增删改查: using System; ...
- 动态创建DAL层类的实例
为了可扩展性,方便以后对于代码的修改维护,使用动态创建DAL层对象. 1.首先在webconfig中的configuration下添加配置项 <appSettings> <add k ...
- 数据库中int类型存在空数据开发过程中model和dal层处理方法
model层 public Int32? IsFullAttendance { get; set; } dal层 if (dr["IsFullAttendance"] + &qu ...
- DAL层与BLL层的设计原则
通用DAL层: 提供一个通用的DAL层的基础框架,其中包括所有实体类的基类,所有DAL类的基类,以及用来在实体类和数据表以及实体类字段和数据表字段之间Mapping的Attributes.此层作为核心 ...
- MyFramework框架搭建(一)DAL层
一直以来有一个想法,搭建一个属于自己的框架,将自己学到的东西整合到框架里,不断的完善,让它随着我的成长而成长,下面介绍我第一阶段的总结:DAL层搭建 一.基础配置 1.我用的是Ibatis.net框架 ...
- [置顶] 自己写代码生成器之生成Dal层代码(获取数据库所有表名称)
自己写代码生成器之生成Dal层代码(获取数据库所有表名称) --得到数据库birthday所有表名称 select name from sysobjects where [type]='U' --se ...
随机推荐
- C语言讲义——传值、传引用
传值 值类型在做参数的时候,函数内使用的是实参的副本. 函数执行完毕后,即使函数内对参数做了修改,调用方的参数还是原来的值. #include <stdio.h> // 值调用 void ...
- Spring bean注册
DefaultListableBeanFactory中: DefaultListableBeanFactory实现了BeanDefinitionRegistry,这个接口的实现完成BeanDefini ...
- vue中,模拟锚点定位,实现滚动动画效果
平时我们利用锚点进行页面内的快速瞬移,画面跳转生硬,观感很差. 在VUE中,如何快速的实现锚点效果,并且还让它拥有滚动的动画效果呢. 其实两行代码就能解决问题 1 <a @click=" ...
- MiniUI日期选择框MonthPicker英文修改为中文
一.详细内容及解决方案 正常MIniUI的MonthPicker中的月份和星期默认是英文的,我百度搜索关于这个问题的博客少之又少,下面说下解决办法,非常简单. <input id="d ...
- Windows 10系统运维之OpenSSH
随着PowerShell和OpenSSH的日渐成熟,在客户终端Windows居多的运维之中,使用Win32-OpenSSH和Powershell来管理一些客户机变成了相当实用的一种解决方案. Open ...
- Beta冲刺随笔——Day_Eight
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 团队进行Beta冲刺 作业正文 正文 其他参考文献 无 今日事今日毕 林涛: ...
- 2、Spring Cloud和dubbo简介
1.Spring Cloud简介 (1).Spring Cloud简介 SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负 ...
- 第8.34节 《Python类中常用的特殊变量和方法》总结
本章介绍了Python类中常用的特殊变量和方法,这些特殊变量和方法都有特殊的用途,是Python强大功能的基石之一,许多功能非常有Python特色.由于Python中一切皆对象,理解这些特殊变量和方法 ...
- 半夜删你代码队 Day1冲刺
一.团队信息 1.团队项目:Midnight聊天室 2.团队名称:半夜删你代码队 3.队员信息: 职务 项目经理 主开发团队 测试人员 姓名 陈惠霖 周楚池 侯晓龙 余金龙 胡兆禧 林涛 二.Alph ...
- WPF源代码分析系列一:剖析WPF模板机制的内部实现(一)
众所周知,在WPF框架中,Visual类是可以提供渲染(render)支持的最顶层的类,所有可视化元素(包括UIElement.FrameworkElment.Control等)都直接或间接继承自Vi ...