मैं अपने IRepository
इंटरफेस के लिए एक नकली बनाने के लिए कोशिश कर रहा हूँ:सूची <T> लागू करने के लिए IQueryable <T>
public interface IRepository<T> : ICollection<T>, IQueryable<T>
{
}
इस कार्यान्वयन के साथ:
public class RepositoryFake<T> : List<T>, IRepository<T>
{
public Expression Expression
{
get
{
return this.AsQueryable().Expression;
}
}
public Type ElementType
{
get
{
return this.AsQueryable().ElementType;
}
}
public IQueryProvider Provider
{
get
{
return this.AsQueryable().Provider;
}
}
}
लेकिन जब मैं इसका इस्तेमाल, मैं हो रही हूँ StackOverflow
अपवाद। एक रिपॉजिटरी के रूप में केवल List
का उपयोग करने में सक्षम होने के लिए इस इंटरफ़ेस को सही तरीके से कैसे कार्यान्वित करें?
प्रयोग बहुत सरल है
[Test]
public void Test()
{
RepositoryFake<User> users = new RepositoryFake<User>();
users.Add(new User());
List<User> list = (from user in users
where user.Id == "5"
select user).ToList();
Assert.That(list, Is.Empty);
}
यहाँ अपवाद के स्क्रीनशॉट है:
"लेकिन जब मैं इसका उपयोग करता हूं" - हमें कोड दिखाएं? हमें स्टैक ट्रेस दिखाएं? – cdhowie
आप क्या करने की कोशिश कर रहे हैं? मेरा सबसे अच्छा अनुमान है कि आप कुछ जादू की उम्मीद कर रहे हैं। व्यवहार पूरी तरह से उम्मीद है। – leppie