【发布时间】:2009-11-18 10:31:28
【问题描述】:
我正在尝试使用 Subsonic 进行预加载,但它一直为我返回 null。
在下面的方法中,我正在尝试对包含另一个域模型 (CompanyModel) 的域模型 (UserModel) 进行水合。但是,使用下面的代码,UserModel.Company 始终为空。
我在这里错过了什么。任何帮助将不胜感激。
public IList<UserModel> GetUsers()
{
return (from u in SubsonicSqlServer.Users.All()
select new UserModel
{
UserId= u.UserId,
Company = (from c in u.Companies
select new CompanyModel
{
CompanyId = c.CompanyId,
CompanyName = c.CompanyName
}).SingleOrDefault(),
FirstName = u.FirstName,
LastName = u.LastName,
BirthDate = u.BirthDate
}).ToList();
}
更新(09 年 8 月 11 日):
更多地玩弄代码,我发现在以下示例中设置 CompanyId 也不起作用。我最初认为这是 Subsonic 的问题,但如果下面的代码不起作用,我猜它与我的 Linq 语句有关。有什么想法吗?
public IList<UserModel> GetUsers()
{
return (from u in SubsonicSqlServer.Users.All()
select new UserModel
{
UserId= u.UserId,
CompanyId = Guid.NewGuid(),
FirstName = u.FirstName,
LastName = u.LastName,
BirthDate = u.BirthDate
}).ToList();
}
更新(2009 年 11 月 17 日):
还没有找到解决办法。但是我们正在切换到 nHibernate(不是因为这个问题)。
【问题讨论】:
-
根据这个帖子,投影存在问题(选择非 SubSonic 类型):groups.google.com/group/subsonicproject/browse_thread/thread/… 可能与此有关。
-
您使用的是哪个亚音速版本?
-
@Funky812:亚音速版本 3.0.0.3
-
我也遇到过同样的问题,尝试了 Funky81 的 fork,但最终还是遇到了投影问题。您对使用 fork 中的代码进行设置有什么建议吗?
-
又玩弄了一些,最终将所有内容、嵌套模型数据和所有内容返回到一个匿名对象中,然后将其复制到真实对象中。