EF 跨库查询
原因:最近公司项目,遇到一个ef跨库查询的问题。(只是跨库,并不是跨服务器哈)
主要我们的一些数据,譬如地址,城市需要查询公共资料库。
但是本身我的程序设计采用的是ef框架的。因此为这事花费了1天时间。也总算有些成效,后来采用codefirst解决了这个问题
下面我就来分享一下。
注意:当然,这里我需要说明一下,我在使用entityframework时,跨库是失败的。(可能表述的不好,应该说是数据库生成模型的方式,失败了。)
但是!我在使用 codefirst时,跨库是成功的!
一个只是由数据库生成模型,另一个是模型生成数据库。
(总结下来,由于数据库生成的模型,edmx文件中,增加了太多的映射信息,不太容易修改和扩展跨库的对象模型。。。。)
注明:这里参考了dudu的文章,还是很有用的,当然主要也是dudu的回复里killkill作出了很大贡献和启发。哈哈
地址:http://www.cnblogs.com/dudu/archive/2011/03/29/entity_framework_cross_database_query_fact.html
废话这么多,下面就上代码!
开始:首先看一下数据库设计:
这个就是我们需要的跨库查询表。
这是我们的数据库
sql运行如下脚本
你没有看错,我们灵活的运用了 SYNONYM(同义词) 关键字
CREATE SYNONYM UserInfoMain
FOR TestUserData.dbo.UserInfo
先创建我们的实体模型
namespace TestMVC.Models
{
public class Destination
{
public int DestinationId { get; set; }
public string Name { get; set; }
public string Country { get; set; }
public string Description { get; set; }
public byte[] Photo { get; set; }
public List<Lodging> Lodgings { get; set; }
}
public class Lodging
{
public int LodgingId { get; set; }
public string Name { get; set; }
public string Owner { get; set; }
public bool IsResort { get; set; }
public Destination Destination { get; set; }
}
public class UserInfoMain
{
public int id { get; set; }
public string name { get; set; }
public DateTime? createTime { get; set; }
}
}
接着创建DbContext对象
namespace TestMVC.Models
{
public class BreakAwayContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<UserInfoMain>().ToTable("dbo.UserInfoMain");
}
public DbSet<Destination> Destinations { get; set; }
public DbSet<Lodging> Lodgings { get; set; }
//这个其实就是我们的跨库查询对象UserInfoMain
public DbSet<UserInfoMain> UserInfoMain { get; set; }
}
}
然后增加 webconfig字符串
<add name="BreakAwayContext"
connectionString="server=.;database=MvcBlog;integrated security=true;"
providerName="System.Data.SqlClient"/>
最后,我们创建一个试图看看能否捕捉数据
public class TestEFController : Controller
{
//
// GET: /TestEF/
BreakAwayContext db = new BreakAwayContext();
public ActionResult Index()
{
//查询本库信息
var q = db.Destinations.ToList();
<pre name="code" class="csharp">//查询<span style="font-family: Arial, Helvetica, sans-serif;">跨库信息</span>
var v = db.UserInfoMain.ToList(); return View(); } }
结果:
PS:如果遇见 什么 code first 迁移问题,请删除 Sql中
数据库-表-系统表,删除“_MigrationXXX”开头的表
EF 跨库查询的更多相关文章
- EF跨库查询,DataBaseFirst下的解决方案
出于各种原因,有时需要跨数据库访问某些数据表,有同学已经给出了解决方案,比如 http://blog.csdn.net/hanjun0612/article/details/50475800 已经解 ...
- 如何使用SQL SERVER数据库跨库查询
SQL Server中内置了数据库跨库查询功能,下面简要介绍一下SQL Server跨库查询.首先打开数据源码:OPENDATASOURCE不使用链接的服务器名,而提供特殊的连接信息,并将其作为四部分 ...
- SqlServer跨库查询
由于业务的拆分,数据库拆分为两种作用: 汇总数据库(Master,头节点数据库), 子节点数据库(Compute Node,计算子节点数据库) 这样,就设计到子节点访问头节点数据库中的某张汇总表,这种 ...
- ACCESS-如何多数据库查询(跨库查询)
测试通过:ACCESSselect * from F:\MYk.mdb.tablename说明:1.查询语句2.来原于哪(没有密码是个路径)3.查询的表名 ====================== ...
- Access数据库跨库查询及记录集区分
医疗设备软件一般都是单机软件,如果是Windows平台,常会选择Access数据库存储结构化数据,因为他轻量,便于部署.然而随着医疗信息化的发展,医生希望对多台单机设备的数据进行管理,采用网络数据库当 ...
- SQL Server 跨库查询
1. 开启Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句: reconfigure reconfigure 2. 跨库查询操作 select * from ...
- 跨库查询(OpenDataSource)与链接服务器(Linking Server)
一:跨库查询 Openrowset/opendatasource() is an ad-hoc method to access remote server's data. So, if you on ...
- mysql 跨库查询问题
MySQL实现跨服务器查询 https://blog.csdn.net/LYK_for_dba/article/details/78180444 mysql> create database l ...
- SQLServer跨库查询--分布式查询
出处:http://www.cnblogs.com/doosmile/archive/2012/03/16/2400646.html --用openrowset连接远程SQL或插入数据 --如果只是临 ...
随机推荐
- CRC---循环冗余校验
typedef unsigned char uchar; typedef unsigned int uint; typedef unsigned short uInt16; uint crc; // ...
- Nginx 403 Forbidden 解决方案 史上最靠谱
原因 1. SELinux为开启状态(enabled) 查看SELinux的状态 sestatus 如果不是 disables , 需要 vi /etc/selinux/config 将以前的 SEL ...
- 磁盘挂载问题:Fdisk最大只能创建2T分区的盘,超过2T使用parted
需求说明:云服务器上买了一块8T的磁盘,准备挂载到服务器上的/data目录下. ===================================parted命令说明=============== ...
- SCRUM 12.18
明天就是编译课设的第二次中期考核了,大家都感到有一些压力. 所以我们决定今天减少一些工作量. 工作任务分配依旧如往常 成员 任务 彭林江 落实API 郝倩 研究遍历美团数据方法 牛强 落实意见反馈功能 ...
- linux 第七周 总结及实验
姬梦馨 原创作品 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 第七周 Linux内核如何装载和启动一 ...
- 《Linux内核分析》期终总结
作者:杨舒雯,原创作品转载请注明出处,<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 目录: 1.通过简 ...
- github链接
github链接:https://github.com/bjing123 test1:https://github.com/bjing123/test-/blob/master/test1.t ...
- ☆C++学习心得
C++是我进大学的学的第一种编程语言,在高中的时候有电脑课,有教过部分的VB语言,所以其实对编程也并不是非常的陌生,刚开是上课也觉得感觉不难,都懂,没多少课后,恍了个神..居然听不懂了!老师经常让我们 ...
- Python学习笔记(一)——初学Python
1.Python环境配置 本人配置Python2.7及Python3.6版本 将Python3.6环境配置在线,因此默认为Python3.6版本 Python2.7及Python3.6共存 2.简单操 ...
- 续摄影O2O篇
项目名:摄影O2O 工具:Eclipse ,adt,jdk1.8,MySQL 步骤:(一) 1.导入beauty项目到一个adt中,然后创建模拟器,运行(客户端) 2.导入SocketSever项目到 ...