Используйте тип столбца UniqueIdentifier и [DatabaseGenerated (DatabaseGeneratedOption.Identity)], чтобы ключ модели не работал в EF Code First

Это моя модель MVC:

public class Link
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid ID { get; set; }

    [DisplayName("Shorted URL")]
    public string SURL { get; set; }

    [DisplayName("General Link")]
    public string OriginalURL { get; set; }

    [DisplayName("Click Count")]
    public int ClickCount { get; set; }
}

а этоLinkDBContext учебный класс:

public class LinkDBContext : DbContext
{
    public DbSet<Link> Links { get; set; }
}

когда я хочу добавить некоторые данные в базу данных, используя этот код:

    private string GetNewID(string url, string id)
    {
        LinkDBContext Links = new LinkDBContext();
        //id = "http://" + id;
        List<Link> link = Links.Links.Where(a => (a.OriginalURL == id && a.SURL == id)).ToList();
        if (link.Count == 0)
        {
            List<Link> LLinks = Links.Links.ToList<Link>();
            Link li = new Link();
            //li.ID = new Guid();
            li.ClickCount = 0;
            li.SURL = id;
            li.OriginalURL = url;
            Links.Links.Add(li);
            Links.SaveChanges();
            Links.Dispose();
            return id.ToString();
        }

        return GetNewID(url);
    }

Я просто получаю исключение:Cannot insert the value NULL into column 'ID', table 'GhiasiDB.dbo.Links'; column does not allow nulls. INSERT fails.The statement has been terminated.

в чем проблема и как я могу ее решить?

update

Я изменил типID отGuid вint и когда я попробовал еще раз, я получил это исключение изList<Link> LLinks = Links.Links.ToList<Link>(); изGetNewID метод:The 'ID' property on 'Link' could not be set to a 'Guid' value. You must set this property to a non-null value of type 'Int32'. и я не знаю, откуда это взялось. Я изменил всеGuidкакint!

Ответы на вопрос(4)

Ваш ответ на вопрос