Я работаю с CodeFirst CTP5.
Как вы можете видеть в моем коде, у меня есть пользователь со многими вопросами. Я хочу иметь возможность удалить пользователя, но оставив вопрос. Кроме того, я также хочу сохранить свойство UserId в вопросе
public class User
{
public User()
{
Questions = new List<Question>();
}
public virtual string UserId { get; set; }
public virtual ICollection<Question> Questions { get; set; }
}
public class Question
{
public virtual string QuestionId { get; set; }
public virtual string Title { get; set; }
public virtual string Text { get; set; }
public User User { get; set; }
public string UserId { get; set; }
}
public class DB : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Question> Questions { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.HasMany(u => u.Questions)
.WithRequired(q => q.User)
.HasForeignKey(q => q.UserId)
.WillCascadeOnDelete(false);
}
}
Проблема в том, что конфигурирование ModelCreating таким образом дает мне эту ошибку:
System.Data.Edm.EdmAssociationType::
Кратность не действительна в роли
'Expert_Answers_Source' в
отношения 'Expert_Answers'. Так как
все свойства в зависимых
Роли обнуляются, кратность
Основная роль должна быть "0..1"
Что я делаю не так? Как я могу получить это?