读写分离子系统 - C# SQL分发子系统 - Entity Framework支持2014-04-08 cnblogs AaronA2D Framework增加了EF支持,加上原先支持ADO.NET:支持EF方式支持ADO.NET方式这次来讲如何让Entity Framework变成nb的读写分离1. 先设计EF模型, 可以图形方式设计,也可以数据库优先方式设计,总之设计完后,再转换成 Code方式使用(用)

2. 在DbContext类中,删除EF自动添加的报错代码,如下:
protected override void OnModelCreating(DbModelBuilder modelBuilder){throw new UnintentionalCodeFirstException();//直接删除这句}
3. 在根目录中增加A2D配置文件A2D.config:
<?xml version="1.0" encoding="utf-8" ?><A2D><SQLDispatcher><WritableDB>server=192.168.1.20;User ID=sa;Password=111111;database=DFH;Connection Reset=FALSE</WritableDB><ReadDBs><DB>server=192.168.1.21;User ID=sa;Password=111111;database=DFH;Connection Reset=FALSE</DB><DB>server=192.168.1.22;User ID=sa;Password=111111;database=DFH;Connection Reset=FALSE</DB></ReadDBs></SQLDispatcher></A2D>
4. 编写查询接口、查询Impl
interface IOrder{[SQLDispatcher]List<Order> QueryOrders(string keyword);}[AOPServiceEnabled]class OrderImpl : ContextBoundObject, IOrder{ private IRepository repository = ObjectFactory.Resolve<IRepository>();public List<Order> QueryOrders(string keyword){ List<Order> orders=repository.Get<Order>(filter: w => w.FirstName.IndexOf(keyword)>=0); return orders;}}