0

我有以下两个课程

[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 检查重复上升的位置将花费我一周或更长时间:/

感谢您的任何回复

4

0 回答 0