是否可以加载不包括某些属性的实体?这个实体的一个属性选择起来很昂贵.我想懒加载这个属性.那可能吗?
我在SQL Server数据库的产品表中有一个图像列。image列用于将图像另存为字节。
我知道最好为图像创建一个单独的表格,但是我没有这样做,所以当我尝试仅列出不含图像的产品时,有什么方法可以排除图像列吗?
我有一个获取表格的代码。这是我的示例代码:
public IQueryable<MyItem> MyItems(){
return context.MyItem;
}
Run Code Online (Sandbox Code Playgroud)
这是 MyItem 的示例属性
public int Id {get;set;}
public byte[] Image {get;set;}
public string Name {get;set;}
Run Code Online (Sandbox Code Playgroud)
因为,byte[]
可以有多个字符,所以我不想在搜索中包含 then,因为如果我有像 10,000 个项目这样的记录需要很长时间。
通常,我希望Select
这样:
public IQueryable<MyItem> MyItems(){
return context.MyItem.Select(item=>new MyItem{
Id=item.Id,
Name=item.Name
});
}
Run Code Online (Sandbox Code Playgroud)
这对于少数属性来说是可以的,但是我有 10-20 个属性,一个一个地写它们会很麻烦。
有没有什么办法,我只是Image
为了更短的代码而在 lambda 中的属性除外?
我想这样做但是当我想使用except运算符时它不起作用:
这篇文章重复:( 从没有ONE字段的entityframework中检索对象)
并且:使用Entity Framework 4和Code-First从数据库中排除字段/属性
using (var db = new DEntities())
{
var ticket = db.Tickets
.Include(o => o.Ticket)
.Except(o => o.AttachmentFile)
.Where(o => o.TicketID == ticketID).ToList();
}
Run Code Online (Sandbox Code Playgroud)
我希望得到所有的表没有AttachmentFile
.