【发布时间】:2018-10-08 21:40:57
【问题描述】:
我确实有 4 张桌子:
Entity (EntityId (PK),Name),
MultimediaEntity(IdMultimediaEntity (PK), EntityId (FK), FileId(FK), Principal),
File ( FileId(PK),Name),
BinaryFile(FileId, Binary,FileGuid)
我需要使用 Linq 检索某个文件的二进制文件,但该文件必须与我在方法 public ActionResult GetEntityFileById(int?EntityId) 中收到的 EntityId 匹配。
select BinaryFile.Binary
from File
inner join BinaryFile on BinaryFile.FileId=File.FileId
select MultimediaEntity.FileId
from File
inner join Entity on Entity.EntityId=MultimediaEntity.EntityId
我知道我需要 2 个内部连接,但我怎样才能检索到我想要的结果?
编辑:需要进行内部连接来检索模型的二进制属性,有什么帮助吗?
public ActionResult GetEntityFileById(int? EntityId)
{
RecursosSearch getEntityById = (from e in db.Entity
join
t in db.EntityType on e.EntityId equals t.EntityId join
m in db.MultimediaEntity on e.EntityId equals m.EntityId
where t.EntityTypeId == 2301 && e.PublishedOnInternet && e.EntityId==EntityId
orderby e.Name
select new RecursosSearch
{
Name = e.Name,
Biography=e.Biography,
Binary=(from m in db.MultimediaEntity
join
e in db.Entity on e.EntityId equals m.EntityId
join
f in db.File on m.FileId equals f.FileId
}).FirstOrDefault();
这是我的模型:
public class RecursosSearch
{
public int EntityId { get; set; }
public string Name { get; set; }
public string Biography { get; set; }
public byte[] Binary { get; set; }
}
【问题讨论】:
-
发布实体模型,而不是视图模型。