【发布时间】:2013-11-13 11:44:08
【问题描述】:
我正在使用 LINQ SqlQuery
进行运行时 sql 查询并从数据库中获取数据SchoolSoulLibrary.SchoolSoulDataEntities ss = new SchoolSoulLibrary.SchoolSoulDataEntities();
string query1;
var li = ss.Database.SqlQuery<MasterBank>(query1).ToList();
MasterBank 类在哪里
public Partial class MasterBank
{
public MasterBank()
{
}
public decimal BankId { get; set; }
public string BankName { get; set; }
public Nullable<decimal> UserId { get; set; }
public Nullable<decimal> SchoolId { get; set; }
}
如果我正在执行这个查询
query1 = "Select * from MasterBank"; or
query1 = "Select BankId,BankName,UserId ,SchoolId from MasterBank";
它没有给出任何错误并返回所有数据
但是如果我正在执行这个查询
query1 = "Select BankName,SchoolId from MasterBank";
发生错误
我理解这个错误的原因是它返回了 MasterBank 类的类型的结果,但是我现在可以做什么,因为 query1 正在生成运行时,其中没有 MasterBank 类的随机属性。
除了 SqlQuery 之外,还有其他选择吗?
请推荐
【问题讨论】:
-
BankId 不可为空,因此如果查询未获取 BankId,那么您会收到错误消息!?你可以让 BankId 为空吗?
-
@erikH,它看起来像一个银行标识符,所以我怀疑它是否可以为空。如果是这种情况,我担心它是
decimal而不是Int32或Int64(甚至是Guid)。 -
@Moo-Juice,由于您并不总是获取银行 ID,因此不需要它。是否可以创建一个将 BankId 为空的 TempMasterBank 类以及其他属性。然后查询将始终有效,然后您可以转换为 MasterBank 类。如果 BankId 未知,则由您的转换代码决定如何创建 MasterBank 实例。
-
@Moo-Juice,或者您可以调整查询以始终获取 BankId!?