我有以下两个课程
[Serializable]
public partial class DocumentType
{
public DocumentType()
{
this.Documents = new List<Document>();
}
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Document> Documents { get; set; }
}
和
[Serializable]
public partial class Document
{
public Document()
{
}
public int ID { get; set; }
public string FileName { get; set; }
public byte[] Data { get; set; }
public Nullable<int> TypeIDfk { get; set; }
public virtual DocumentType DocumentType { get; set;
}
我利用客户端-服务器架构并使用套接字我通过网络将所有 DocumentTypes 的列表发送到组合框中在组合框中的 SelectionChanged 上我将 DocumentType = Selected DocumentType 和 TypeIDfk 设置为 DocumentType.ID
我遇到的问题是,当我通过网络将文档发送回服务器并将其保存到数据库中时,它会在 DocumentType 中创建一个重复条目。然后更改 TypeIDfk
我通过设置 DocumentType = null (但保留 TypeIDfk )解决了它,这很糟糕,因为我想显示绑定。这也不会打扰我太多我可以执行以下 TypeIDfk 到 DocumentType.ID 发送和保存 DocumentType = Selected DocumentType
然而,这就是它变得有趣的地方。我做了以下 this.Configuration.ProxyCreationEnabled = false;
现在,当我将 Document 插入 DbSet 时调用 SaveChanges() 后,Document.DocumentType 会自动填充。(即使它是空的)我不希望在插入后我想保持空,这样我就可以在客户端再次更改它。
但是,如果有人可以帮助我解决重复条目上的问题,那就太好了。我在大学的项目中大约有 64 节课,我通过每个 Insertforms 检查重复上升的位置将花费我一周或更长时间:/
感谢您的任何回复