【发布时间】:2014-08-21 01:27:15
【问题描述】:
您好,我有两张这样的表:
public class TableA
{
public int IdTableA { get; set; }
public string OtherInfo { get; set; }
public int? IdTableB { get; set; }
public TableB TableB { get; set; }
}
public class TableB
{
public TableB()
{
TableAs = new HashSet<TableA>();
}
public int IdTableB { get; set; }
public string Description { get; set; }
public ICollection<TableA> TableAs { get; set; }
}
表TableA到TableB的外键映射如下:
this.HasOptional(t => t.TableB)
.WithMany(t => t.TableAs)
.HasForeignKey(d => d.IdTableB);
现在我正在尝试从TableA 中选择一些数据:
context
.TableA
.Select(s => new TableA_DTO
{
IdTableA = s.IdTableA,
OtherInfo = s.OtherInfo,
IdTableB = s.IdTableB,
TableB = new TableB_DTO
{
IdTableB = s.TableB.IdTableB,
Description = s.TableB.Description
}
}).ToList();
当我在TableA 中有一行IdTableB = null 时的问题。我得到了这个例外:
转换为值类型“Int32”失败,因为具体化值为空。结果类型的泛型参数或查询必须使用可为空的类型。
如何使用实体框架选择此信息?
【问题讨论】:
标签: c# .net linq entity-framework