FineUI 官方论坛

标题: 请教关于对Attach重写的问题 [打印本页]

作者: wck173168    时间: 2017-2-24 13:34
标题: 请教关于对Attach重写的问题
本帖最后由 wck173168 于 2017-2-24 13:38 编辑

最近在学习文章AppBox升级进行时 - Attach陷阱(Entity Framework) 中学习了以下写法
  1.         
  2.         
  3.         protected T Attach<T>(int keyID) where T : class, IKeyID, new()
  4.         {
  5.             T t = DB.Set<T>().Local.Where(x => x.ID == keyID).FirstOrDefault();
  6.             if (t == null)
  7.             {
  8.                 t = new T { ID = keyID };
  9.                 DB.Set<T>().Attach(t);
  10.             }
  11.             return t;
  12.         }
复制代码


其中DB的定义为
public static AppBoxContext DB...
如果我还链接了别的数据库定义了别的DbContext  
例如
public static OtherContext OtherDB...
要调用Attach,我是这么写的
  1.         
  2.         
  3.         protected T Attach<T>(int keyID) where T : class, IKeyID, new()
  4.         {
  5.             T t = OtherDB.Set<T>().Local.Where(x => x.ID == keyID).FirstOrDefault();
  6.             if (t == null)
  7.             {
  8.                 t = new T { ID = keyID };
  9.                 OtherDB.Set<T>().Attach(t);
  10.             }
  11.             return t;
  12.         }
复制代码



请问
能否有封装的写法,让我调用Attach<T>(int keyID)的时候 能够选定数据库实体DbContext?
谢谢各位大神!








欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) Powered by Discuz! X3.4