2

I get an error when I try to insert a value in my Table. _dltype is an object of type BRIDownloadType.

using (var db = new BRIDatabase())
{
    foreach (var client in db.BRIClients)
    {
        var todo = new BRIToDo
        {
            BRIClient = client,
            BRIDownloadType = _dltype,
        };
        db.BRIToDos.Add(todo);
    }
    db.SaveChanges();
}

Now I get the error:

An Explict Value can't be inserted in the Idendity Column in the BRIDownloadTypes-Table when IDENTITY_INSERT is OFF.

My 2 Tables are

BRIDownloadType

public class BRIDownloadType
{
    [Key]
    public int DlTypeId { get; set; }

    [Required]
    [StringLength(15)]
    public string DlType { get; set; }

    public string Username { get; set; }

    public string Password { get; set; }

    public virtual ICollection<BRIToDo> BRIToDo { get; set; }

}

BRITodo

public class BRIToDo
{
    [Key]
    public int ToDoId { get; set; }

    [ForeignKey("BRIClient")]
    public int ClientId { get; set; }

    [ForeignKey("BRITask")]
    public int TaskId { get; set; }

    public virtual BRIClient BRIClient { get; set; }

    public virtual BRITask BRITask { get; set; }

    [ForeignKey("BRIDownloadType")]
    public int DlTypeId { get; set; }

    public virtual BRIDownloadType BRIDownloadType { get; set; }**

}

The interesting thing is, if I do something with my _dltype object, I can use it. The following code is working and I don't understand why, I'm inserting the exact same object.

using (var db = new BRIDatabase())
{
    var dl = db.BRIDownloadTypes.FirstOrDefault(c => c.DlTypeId == _dltype.DlTypeId);
    foreach (var client in db.BRIClients)
    {
        var todo = new BRIToDo
        {
            BRIClient = client,
            BRIDownloadType = _dltype,
        };
        db.BRIToDos.Add(todo);
    }
    db.SaveChanges();
}

Can anybody explain to me, why the last approach is working and the first is throwing that error? I just added the line

var dl = db.BRIDownloadTypes.FirstOrDefault(c => c.DlTypeId == _dltype.DlTypeId)

But I'm still inserting the same object. If I insert the Id of the object instead of the object it is also working fine. I have no idea whats going on there.

Erik Philips
  • 53,428
  • 11
  • 128
  • 150
Benny
  • 258
  • 1
  • 4
  • 11

0 Answers0