在LINQPad中,到数据库的连接可以是
- LINQ to SQL
- 实体框架核心
- 其他或无
下面是我喜欢写的一些代码,它根据不同的连接保存数据。但是预定义的符号不存在。
#if LINQ2SQL
SubmitChanges();
#elif EFCORE
SaveChanges();
#else
; //None
#endif
有办法做到这一点吗?谢谢
(反射在这里不起作用,因为这需要在编译时决定。(
更新正如Joe的回答所示,反思可以完美地解决问题。
是否有任何原因不想在运行时解决此问题?
以下将起作用:
if (GetType().GetProperty ("ChangeTracker") != null)
((dynamic)this).SaveChanges(); // EF Core
else if (GetType().GetProperty ("Mapping") != null)
((dynamic)this).SubmitChanges(); // LINQ to SQL