gpt4 book ai didi

linq-to-sql - 如何在 linq for sql 中使用工厂类?

转载 作者:行者123 更新时间:2023-12-04 15:49:21 26 4
gpt4 key购买 nike

我在我的数据库模型之上有一个模型,并映射了我的存储库中的对象。

但是,显然,我是直接在 GetUsers 中“选择新的”还是“选择 factoryresult”(如下所示)会有所不同。我在运行时收到错误,即 CreateFromDbModel 方法没有转换为 sql (System.NotSupportedException)。

有没有解决的办法?我能以某种方式修补它吗?

想要使用工厂方法的原因是我可能会在其他地方实例化对象并希望将“映射代码”保留在一个地方......

感谢您的任何评论,
安德斯

    public IQueryable<User> GetUsers(bool includeTeams)
{
return from u in _db.sc_Players
where (includeTeams || (!u.aspnet_User.sc_Player.IsTeam))
select UserFactory2.CreateFromDbModel(u);
}


public static User CreateFromDbModel(sc_Player player)
{
return new User
{
Id = player.sc_PlayerID,
FirstName = player.FirstName.Trim(),
LastName = player.LastName.Trim(),
PresentationName = player.FirstName.Trim() + " " + player.LastName.Trim(),
LoginName = player.aspnet_User.LoweredUserName,
IsTeam = player.IsTeam,
Email = player.aspnet_User.aspnet_Membership.Email,
Password = player.aspnet_User.aspnet_Membership.Password
};
}

最佳答案

错误几乎解释了这一切。

“方法 CreateFromDbModel 没有转换为 sql (System.NotSupportedException)”

您的 CreateFromDbModel 方法不是 sql 函数。在对象从服务器明确返回给您之前,您的应用程序将无法运行 CreateFromDbModel 函数。在对它们运行 CreateFromDbModel 之前,您很可能必须在查询中调用 ToList() 或类似的东西。

关于linq-to-sql - 如何在 linq for sql 中使用工厂类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1366373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com