Во вложенном классе, как можно контролировать, что дублирующаяся информация не записана в таблице - PullRequest
0 голосов
/ 02 мая 2019

У меня есть веб-сервис, который пользователи могут отправлять для этой информации, как показано в следующем примере.

Проблема возникает, когда информация, отправляемая в классе, одинакова. Как «sampleLine» в коде.

Как я могу контролировать, чтобы он не хранился в таблице дублирующихся данных "sampleLine"?

public class samplePerson
{
    public int ID { get; set; }

    public string Name { get; set; }

    public sampleCopmany PersonCopmany { get; set; }

    public sampleLine PersonLine { get; set; }
}

public class sampleCopmany
{
    public int ID { get; set; }

    public string Name { get; set; }

    public sampleLine CopmanyLine { get; set; }
}

public class sampleLine
{
    public int ID { get; set; }

    public string Name { get; set; }
}


public class sampleDBContext
{
    private MyDBContext dBContext;

    public sampleDBContext()
    {
        dBContext = new MyDBContext();
    }
    public void Save()
    {
        samplePerson samplePerson = new samplePerson();

        samplePerson.ID = -1;

        samplePerson.Name = "Reza";

        samplePerson.PersonCopmany = new sampleCopmany()
        {
            ID = -1,
            Name = "Test",
            CopmanyLine = new sampleLine()
            {
                ID = -1,
                Name = "line"
            }
        };

        samplePerson.PersonLine = new sampleLine()
        {
            ID = -1,
            Name = "line"
        };

        dBContext.Add(samplePerson);

        dBContext.SaveChangesAsync();
    }
}

Можно ли управлять этим предметом?

1 Ответ

0 голосов
/ 02 мая 2019

В EF нет никакого автоматического способа, который бы его обрабатывал, и вам необходимо вручную проверить наличие данных перед их созданием.
Если запись существует, используйте существующий ключ, а если нет, то создайте запись, как вы делали это в своем примере кода.

...