Не могу присоединиться к другому столу - PullRequest
0 голосов
/ 03 апреля 2020

Я хочу присоединиться к моей другой таблице, но Files дает ноль.

Мой запрос:

public IEnumerable<Advertentie> Get()
{
    var adv = (from a in db.Advertenties
               join f in db.Files on a.Id equals f.AdvertentieId
               select a); 
    return adv;
}

Способ ввода данных:

List<File> files = new List<File>();
……

File file1 = new File
{
    FileName = file.FileName,
    FileContent = new byte[file.ContentLength],
};
files.Add(file1);

Advertentie adv = new Advertentie
{
    Text = request.Form["description"],
    Title = request.Form["title"],
    TypeProperty = request.Form["typeProperty"],
    Files = files
};
db.Advertenties.Add(adv);
db.SaveChanges();

Моя модель:


public class Advertentie
{
    public int Id { get; set; }

    public string Title { get; set; }

    public string Text { get; set; }

    public string TypeProperty { get; set; }

    public virtual ICollection<File> Files { get; set; }

}

public class File
{
    public int FileId { get; set; }
    public string FileName { get; set; }
    public byte[] FileContent { get; set; }
    public virtual Advertentie Advertentie { get; set; }
    public int AdvertentieId { get; set; }
}

1 Ответ

0 голосов
/ 03 апреля 2020

Вы не установили AdvertentieId файлов, вам нужно назначить его после того, как вы сохранили Advertent ie в вашей базе данных, потому что он выглядит как автоинкрементный столбец, потому что вы не установили его в своем коде.

Advertentie adv = new Advertentie
{
    Text = request.Form["description"],
    Title = request.Form["title"],
    TypeProperty = request.Form["typeProperty"],
    Files = files
};
db.Advertenties.Add(adv);
db.SaveChanges();

File file1 = new File
{
    FileName = file.FileName,
    FileContent = new byte[file.ContentLength],
    AdvertentieId = adv.Id
};
...