EF:将自定义对象绑定到用户标识时的登录异常

时间:2017-06-03 10:52:37

标签: c# asp.net entity-framework

  

无法确定类型'EntityFrameworkDatabase.Person'和'EntityFrameworkDatabase.ApplicationUser'之间关联的主要结尾。必须使用关系流畅API或数据注释显式配置此关联的主要结尾。

我知道这些问题已被多次回答,但我认为我遇到了不同的问题。 ref

我在Identity类中的User和我自己的Person类之间存在关系(0-1 0-1)。 refref

import javafx.collections.FXCollections;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;

/**
 * @see https://stackoverflow.com/a/44343112/230513
 */
public class ObservableListTest {

    public static void main(String[] args) throws Exception {
        ObservableList<Integer> list1 = FXCollections.observableArrayList();
        ObservableList<Integer> list2 = FXCollections.unmodifiableObservableList(list1);
        list2.addListener((ListChangeListener.Change<? extends Integer> c) -> {
            System.out.println("changed " + c);
        });
        int i = 0;
        while (true) {
            list1.add(Integer.valueOf(i++));
            Thread.sleep(1000);
        }
    }
}

移植工作正常,我得到两个FK。但是当我尝试登录用户时,我在

处获得了一个例外
            modelBuilder.Entity<ApplicationUser>()
            .HasOptional(s => s.Person)
            .WithOptionalPrincipal()
            .Map(s => s.MapKey("ApplicationUserId"));

        modelBuilder.Entity<Person>()
            .HasOptional(s => s.ApplicationUser)
            .WithOptionalPrincipal()
            .Map(s => s.MapKey("PersonId"));

为什么我在尝试登录时遇到异常而不是更新数据库以及如何解决问题?

1 个答案:

答案 0 :(得分:0)

解决方案是对OwinContext使用与DataContext相同的上下文。