gpt4 book ai didi

c# - 当它具有已存在的外键对象时,如何使用 Entity Framework 添加对象

转载 作者:太空宇宙 更新时间:2023-11-03 16:58:01 24 4
gpt4 key购买 nike

我有 2 个表:

tblAuthors
- id
- username

tblPosts
- id
- authorid

如果我创建一个新帖子

var post = new Post { Id=Guid.NewId(), Author=new Author { UserName="username", Id="id in database } };

帖子的作者已经在数据库中,但帖子本身不...

所以我想做的是:

entities.AddToPosts(obj);

但它试图添加作者和帖子...有没有办法让它保存作者并添加帖子?或者完全忽略作者?

我将 Post 和 Author 作为我自己的 POCO 业务对象,它们是从数据库中提取的,然后转换到我的业务层。我不想重新拉取它们,因为我可以在我的业务层中修改它们。所以我只想附加对象。

我不想保留数据对象,我将它们拉出来并将它们转换为业务对象,然后在我想推回数据库并将业务对象转换为数据之前不要再接触它们对象。

最佳答案

难道您不应该先从数据库中检索作者记录以便能够在 Post 对象中设置它吗?

所以你会得到:

var author = Author.Select(a => a.Id).FirstOrDefault();
var post = new Post { Id=Guid.NewId(), Author=author };
entities.AddToPosts(obj);

也许你可以使用 AttachAttachTo ObjectContext 附加对象,但MSDN 库中没有提到是否执行对数据库的查询。通过一些跟踪,您可以检查是否发生了数据库查询。

关于c# - 当它具有已存在的外键对象时,如何使用 Entity Framework 添加对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/700310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com