我试图用一个变量访问不同的上下文。请看之前的代码:
{{1}}
运行此时出现错误,因为_dynamicContext不能为null,那么如何创建可以更改为不同上下文的变量?
懒惰的解决方案是为每个客户创建不同的方法,但这不会非常有效,因为它将变得不可维护。
我将非常感谢你的帮助。提前谢谢。
答案 0 :(得分:0)
public interface IClientType
{
public Store Store { get; }
}
public class ClientOneType : IClientType
{
...
}
public class ClientTwoType : IClientType
{
...
}
public Stores[] GetStores(Store storeModel)
{
try
{
IClientType _dynamicContext = null;
...
答案 1 :(得分:0)
ClientOneType和ClientTwoType都是从暴露名为" Store" ?
我猜他们没有,因为他们没有,所以没有办法使用相同的变量来编写你正在编写的LINQ查询,因为编译器必须能够确定可用的属性。
但是,您可以使用IQueryable动态构建查询
IQueryable<Stores> storeQry=null;
if (client == "Walmart")
storeQry= _contextClientOne.Store.AsQueryable();
else if(client == "CHS")
storeQry= _contextClientTwo.Store.AsQueryable();
var stores = (from s in storeQry
where s.StoreName == storeModel.StoreName
select p).ToArray();