У меня есть 4 таблицы:
Entity (EntityId (PK),Name),
MultimediaEntity(IdMultimediaEntity (PK), EntityId (FK), FileId(FK), Principal),
File ( FileId(PK),Name),
BinaryFile(FileId, Binary,FileGuid)
, и мне нужно извлечь, используя Linq, двоичный файл определенного файла, но этот файл должен соответствовать EntityId, который я получаю в своем методе public ActionResultGetEntityFileById (int? 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; }
}