MVC присоединиться с помощью моделей объектов - PullRequest
0 голосов
/ 10 октября 2019

У меня есть следующая схема:

public class Provider
    {

        [Key]
        public int ProviderId { get; set; }
        [ForeignKey("ProviderId")]
        public ApplicationUser User;

        public ICollection<ServiceProvider> Services { get; set; }
    }

public class ApplicationUser : IdentityUser
{
    public ApplicationUser() : base() { }

    public string Name { get; set; }
    public string Address { get; set; }
    public string Photo { get; set; }
    public string BusinessName { get; set; }
}

В моем бэкэнде у меня есть входящее электронное письмо, и я пытаюсь проверить, есть ли провайдер с таким электронным письмом. Я попытался использовать следующий код:

if (context.Provider.Any(o => o.User.Email == input_mail) == false)

, но получил исключение нулевого указателя ..

Я знаю, что могу использовать синтаксис linku:

    var q = from au in _context.ApplicationUser
            join p in _context.Provider on au.Id equals p.ProviderId
            where au.Email=input_mail;

Любой способ сделать это с помощью контекста модели? вместо линку

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

переопределить Email и проверить его на nullorempty в модели.

// Override auto-implemented property with ordinary property
   // to provide specialized accessor behavior.
    public override string Email
    {
        get
        {
            return email;//declare this private string also in model
        }
        set
        {
            if (!string.IsNullOrEmpty(value))
            {
                name = value;
            }
            else
            {
                email= "Unknown";
            }
        }
    } 
0 голосов
/ 10 октября 2019

Если я понял ваш вопрос, то следующего предложения достаточно, нет необходимости добавлять FALSE if (context.Provider.Any (o => o.User.Email == input_mail))

...