各种对象都是有效的,并在应用程序的其他地方使用:
public virtual Discount SelectDiscountByUser(User currentUser)
{
Query q = new Query();
q.Criteria.Add(new Criteria("User.ID", CriteriaOperator.Equal, currentUser.ID));
User user = DataContext.Load<User>(q);
...
}
我在'.Load(q)'行
上遇到2个编译器错误错误34最佳重载方法 匹配 'myApp.DataAccess.IDataContext.Load(INT)' 有一些无效的 参数... Facade \ UserFacade.cs 100 25 myApp.Business
错误35参数1:无法转换 从'myApp.DataAccess.Query'到 'int'... Facade \ UserFacade.cs 100 48 myApp.Business
界面中的行如下所示:
public interface IDataContext
{
EntityType Load<EntityType>(int ID) where EntityType : class, new();
...
我可以通过返回列表来清除错误条件:
IList<User> user = DataContext.LoadList<User>(q);
我可以使用该列表(返回用户[0] .SubscriptionDiscount;)但这似乎不对。
答案 0 :(得分:1)
您在上面概述的接口方法采用整数,并且您尝试将其传递给Query对象。对我来说,这似乎是一个非常严重和干燥的问题。
答案 1 :(得分:0)
Cole和binaryhowl都解释了这个问题,但是你不必要地使事情变得复杂。
session.Load<EntityType>(ID)
或session.Get<EntityType>(ID)
,具体取决于您真正想要完成的工作。当您已经知道Id时,不需要查询。