Asp.net mvc mvc实体框架试图处理重复项

Asp.net mvc mvc实体框架试图处理重复项,asp.net-mvc,entity-framework,entity-framework-4.1,Asp.net Mvc,Entity Framework,Entity Framework 4.1,因此,我试图找出如何处理重复项,我想到的一种方法是将类型重新指定为相同的类型 乙二醇 所以,基本上,任何人都可以注册,但是如果有人意外地保存了一个重复的员工,我就不能对这部分进行任何验证,所以我计划使用一些管理页面来将重复的员工映射为“主要”员工 但我得到了一个错误: 无法确定服务器之间关联的主体端 此关联的主体端必须显式为 使用fluent API或数据注释进行配置 所以我不确定这是否是处理重复的正确方法,如果不是,请给我指出正确的方向。如果可以接受的话,你能帮我阻止这个错误吗 谢谢 非常感谢

因此,我试图找出如何处理重复项,我想到的一种方法是将类型重新指定为相同的类型

乙二醇

所以,基本上,任何人都可以注册,但是如果有人意外地保存了一个重复的员工,我就不能对这部分进行任何验证,所以我计划使用一些管理页面来将重复的员工映射为“主要”员工

但我得到了一个错误:

无法确定服务器之间关联的主体端 此关联的主体端必须显式为 使用fluent API或数据注释进行配置

所以我不确定这是否是处理重复的正确方法,如果不是,请给我指出正确的方向。如果可以接受的话,你能帮我阻止这个错误吗

谢谢


非常感谢

所以我不确定这是否是处理重复的正确方法:是的,这确实不是一个好方法。你也知道:)

我建议你怎么做

当您与“雇员”一起工作时,我假设会有一些雇员独有的id(如EmployeeID)。因此,通过将这样一个id作为主键,您可以对此进行简单的ifExists检查,并在视图上显示适当的消息

更新: 如果没有员工的独特之处(甚至没有电子邮件或employeeId等),那么根据我的说法,您的数据库设计是错误的。但这也是我个人的观点


希望这能有所帮助。

这感觉像是非常糟糕的应用程序设计。你到底想做什么?为什么会有重复的?也许问题应该是防止重复,而不是处理重复。好吧,我同意,但在这种情况下,我有一个应用程序,处理的是推广人的客户没有承诺注册电子邮件,所以他们不能拥有帐户(这将是处理重复的主要方式)。推广人不能强迫他们的客户拥有网站账号,因为他们中的一些人会注册孩子。而且发起人一年内会有多个活动。这些孩子有时会在几年内注册一次或多次(他们不确定)。因此,为了处理这个问题,他们需要先搜索,如果没有找到现有记录,他们将添加一个新记录。但是..如果说搜索功能没有捕获条件/过滤器,那么他们可能最终注册了一个重复的记录。这就是他们必须处理重复品的地方。我能想到的唯一一件事是将它们映射回所选的“主”或“主”记录,其中所有重复项都映射到..“如果说搜索功能没有捕获条件/过滤器”,那么它就不是重复项..?是的。但这里有一个场景,假设有一个名为Fname=Anderson Lname=da Silva的员工。发起人说,有人注册了这个Fname=Anderson da Lname=Silva。登记通过了,然后有一个副本。Fname=Samir de Lname=Canto也是如此,然后Fname=Samir de Lname=Canto Dias中出现了一个新的。好吧,糟糕的是,我忘了说这会保存到数据库中。这与“员工”的统计数据有关,比如事件发生的数量、完成的工作量等。因此,如果有一个用户记录在本月注册了一个事件(没有电子邮件),然后在有2到3年后再次注册,则会有2个记录。出于报告的目的,您希望获得这两条记录的统计数据(我希望这是有意义的)。如果员工没有什么独特之处(甚至没有电子邮件),那么根据我的说法,您的数据库设计是错误的。但这也是我个人的观点,我同意。这就是我们在另一个答案上所说的。
public class Employee
{
    public int Id {get;set;}
    public string Name {get;set;}
    public int? RemappingId {get;set;}

    public virtual Employee Remapping {get;set;}
}