надеюсь, что вы можете помочь!
Я запустил проект в MVC 3 и установил модель бизнес-домена в другой сборке, интерфейсы определяют контракт между этой сборкой и всеми проектами, которые будут ее использовать. Я использую Ninject для внедрения зависимостей в проект. В данный момент я столкнулся с кирпичной стеной с помощью конкретного запроса LINQ.
public IEnumerable<ITheInterface> DoMyQuery()
{
using (ISession session = _sessionFactory.OpenSession()) {
var query = (
from c in session.Query<IMyInterface>()
where something == anotherthing
group c by new { c.TheGrouper } into grp
select new IMyInterface() {
Property = grp.Key
}
);
return query.ToList();
}
}
Теперь, очевидно, я не могу создать интерфейс, но это моя проблема! Единственный способ обойти это - создать конкретный класс, но это нарушает мои правила слабой связи. Кто-нибудь еще сталкивался с этим раньше?
Полагаю, мой вопрос в том, как мне использовать «выбрать новый объект» в запросе LINQ, используя интерфейс, а НЕ конкретный класс?
Примечание: просто для справки, даже если я использую свой конкретный класс, чтобы просто заставить его работать, я получаю ошибку NHibernate «Не удалось разрешить свойство: Ключ:» ... но это другая проблема.
Любая помощь приветствуется !!