0

私はEF4を使用しています。このコードを使用して、モデルの機能をテストしています。

    using (var context = new CamelotDB())
    {
        Console.WriteLine("Starting User Repository Testing{0}",Environment.NewLine);
        Console.WriteLine("Creating Test User");
        DomainEntity userToAdd = new User()
        {
            EntityName = "Test User",
            EntityType = DomainEntity.eEntityType.User,
            Username = "TestUser",
            Password = "123",
            Email = "TestUser@Test.org",
            FirstName = "Test",
            LastName = "User",
            Phone = "123456789",
            EntityParentID = null,
        };

        Console.WriteLine("Saving user to database...");
        userToAdd = context.DomainEntities.Add(userToAdd);
        context.SaveChanges();

        Console.WriteLine("Fetching user from database...");
        int userID = userToAdd.EntityID;
        DomainEntity userToDelete = context.DomainEntities.Find(userID);

        Console.WriteLine("Removing the user...");
        context.DomainEntities.Remove(userToDelete);
        context.SaveChanges();

    } 

ユーザーがDBに正常に追加し、ユーザーIDを取得します。Find()でメソッドを使おうとすると

DomainEntity userToDelete = context.DomainEntities.Find(userID);

次のエラーが発生します:値をnullにすることはできません。パラメータ名キー

私はイベントを次のように呼び出そうとしました:

DomainEntity userToDelete = context.DomainEntities.Find(2);

userID 2がDBに存在するが、それでも同じ例外が発生したことを知っています。

4

1 に答える 1

0

どういうわけか修正されました...EDMXからkeyプロパティを削除し、変更を保存して再度追加すると、すべてが通常の状態に戻り、EDMX世代と関係があると推測されます...

于 2013-01-04T05:52:51.840 に答える