LINQPad如何在编译时根据不同的连接调用不同的代码?
How to call different code based on different connections at compile time in LINQPad?
在LINQPad中,与数据库的连接可以是
- LINQ 到 SQL
- 实体框架核心
- 其他或none
这是我喜欢写的一些代码,它根据不同的连接保存数据。但预定义符号不存在。
#if LINQ2SQL
SubmitChanges();
#elif EFCORE
SaveChanges();
#else
; //None
#endif
有办法吗?谢谢。
(反射在这里不起作用,因为这需要在编译时决定。)
更新
正如所示,反射可以完美解决问题。
你有什么理由不想在运行时解决这个问题吗?
以下将起作用:
if (GetType().GetProperty ("ChangeTracker") != null)
((dynamic)this).SaveChanges(); // EF Core
else if (GetType().GetProperty ("Mapping") != null)
((dynamic)this).SubmitChanges(); // LINQ to SQL
在LINQPad中,与数据库的连接可以是
- LINQ 到 SQL
- 实体框架核心
- 其他或none
这是我喜欢写的一些代码,它根据不同的连接保存数据。但预定义符号不存在。
#if LINQ2SQL
SubmitChanges();
#elif EFCORE
SaveChanges();
#else
; //None
#endif
有办法吗?谢谢。
(反射在这里不起作用,因为这需要在编译时决定。)
更新
正如
你有什么理由不想在运行时解决这个问题吗?
以下将起作用:
if (GetType().GetProperty ("ChangeTracker") != null)
((dynamic)this).SaveChanges(); // EF Core
else if (GetType().GetProperty ("Mapping") != null)
((dynamic)this).SubmitChanges(); // LINQ to SQL