为了账号安全,请及时绑定邮箱和手机立即绑定

找出传递给 SaveChanges 方法的对象类型

找出传递给 SaveChanges 方法的对象类型

C#
慕标5832272 2021-07-01 10:11:46
使用实体框架,我覆盖了 SaveChanges 方法。但是我想不出一个好的解决方案来确定对象是否从我的基类派生。如果是这样,我想从基类调用一个方法。我有这样的对象public class BaseClass : EntityData {   public void DoSomething() { … }}public class B : BaseClass  { … }public class C : BaseClass  { … }public class D : EntityData { … }在我的 SaveChanges 方法中,我想做这样的事情:public override int SaveChanges() {   var changedEntitles = ChangeTracker.Entries().Where   (_ => _.State == EntityState.Added || _.State == EntityState.Modified);   foreach (var obj in changedEntitles)  {       if( "obj is of type baseClass ") {  <---- need some help here           obj.DoSomething();   <--- and here.       }   }   return base.SaveChanges();}我需要 B 类和 C 类应该:DoSomething(),D 类应该被忽略。希望您能够帮助我。
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

我建议您使用检查其类型is以避免不必要的强制转换。


if(obj.Entity is BaseClass) {

    ((BaseClass)obj).DoSomething();

}


查看完整回答
反对 回复 2021-07-10
  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信