实体框架插入具有相关对象的对象

2024-03-28

我是实体框架的新手,我需要插入一个对象Comment具有相关的 FK 对象User进入数据库。

    public Class Comment
    {
        public int CommentID { get; set; }
        public string CommentContent { get; set; }
        public virtual User User { get; set; }
        public virtual DateTime CommentCreationTime { get; set; }
    }

public class User
{      

    public int UserID { get; set; }
    public string UserName { get; set; }
    public string UserPassword { get; set; }

    public string UserImageUrl{get; set;}
    public DateTime UserCreationDate { get; set; }

    public virtual List<Comment> Comments { get; set; }
}

  public void AddComment()
  {
        User user = new User() { UserID = 1 };            
        Comment comment = new Comment() { CommentContent = "This is a comment", CommentCreationTime = DateTime.Now, User = user };

        var ctx = new WallContext();
        comments = new CommentsRepository(ctx);

        comments.AddComment(comment);
        ctx.SaveChanges();
   }

理想情况下,使用 T-SQL,如果我知道我的主键User对象,我可以插入我的Comment对象并在插入语句中指定我的“用户”的 PK。

我尝试对实体框架执行相同的操作,但似乎不起作用。必须先获取User从数据库中获取对象只是为了插入新的“注释”。

请问,我怎样才能实现这个目标?


您需要将用户对象附加到上下文,以便上下文知道它是一个现有实体

  public void AddComment()
  {
       var ctx = new WallContext();

        User user = new User() { UserID = 1 };  

        ctx.Users.Attach(user);

        Comment comment = new Comment() { CommentContent = "This is a comment", CommentCreationTime = DateTime.Now, User = user };

        comments = new CommentsRepository(ctx);

        comments.AddComment(comment);
        ctx.SaveChanges();
   }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架插入具有相关对象的对象 的相关文章

  • 仅将唯一项目添加到列表中

    当远程设备通过网络宣布自己时 我将其添加到列表中 我只想将之前未添加过的设备添加到列表中 这些公告是通过异步套接字侦听器发出的 因此添加设备的代码可以在多个线程上运行 我不确定我做错了什么 但无论我尝试什么 最终都会出现重复 这是我目前拥有
  • EF4 仅代码映射继承

    我有以下型号 我想要ShiftRequest and MissionRequest在数据库中有一个表 public class RequestBase public int Id get set public DateTime Reques
  • 从 Intellisense 中隐藏(抽象)类

    我有几个抽象类是类库 想从 Intellisense 中隐藏 该怎么做 在类声明之前使用属性 Browsable false EditorBrowsable EditorBrowsableState Never edit 如果类代码在您的解
  • 实体框架代码首先迁移抛出错误

    这是我在收到此错误之前所做的操作 安装了 EF 预发布版本 可能是 6 我不知道 决定我不想要 所以卸载它并重新安装稳定版本 5 通过 SSMS 截断我的数据库 这是错误 Exception calling CreateInstanceFr
  • 如何在 C# WinForms 中的 Label 上编写二次方程?

    我们正在制作统计软件 我们需要在任何地方放置公式 例如ax2 bx c怎么做ax2表示x平方2 我想在x的上侧显示2 与 c 相同 我想在后缀处显示 c 您是否有用户可以选择但无法编辑的固定公式列表 然后为每个公式生成一个图像 将它们存储在
  • 反思 ExpandoObject

    我写了一个漂亮的函数 它将接受system object 反映其属性并将对象序列化为 JSON 字符串 它看起来像这样 public class JSONSerializer public string Serialize object o
  • 在 C#/.NET 中检测图像 URL

    有没有办法可以检测图像 URL 例如 http mysite com image jpg 但还有其他格式吗 我正在使用 C 和 NET 4 0 就像是 bool isImageUrl string URL edit我的意思是如果 URL 指
  • 在MVC视图层从DATASET中提取数据

    我被告知在 MVC 中使用旧的传统 SQL 方式 因此创建了登录注册页面 但现在的问题是我无法从数据集中将数据返回到 VIEW Model public ConnectionStatus Login db String email Stri
  • 附加两个 IEnumerable 项

    IEnumerable
  • C#:设置任意维度数组中的所有值

    我正在寻找一种将多维数组中的每个值设置为单个值的方法 问题是维数在编译时是未知的 它可能是一维的 也可能是 4 维的 自从foreach不允许你设定价值观 我可以实现这一目标的一种方法是什么 非常感谢 虽然这个问题表面上看起来很简单 但实际
  • 是否可以将实体框架与 Windows Azure 开发存储服务一起使用?

    编辑 是否可以将实体框架与 Windows Azure 开发存储服务一起使用 如何 Thanks 不 这是不可能或不切实际的 Azure 存储 与 SQL Azure 不同 不支持加入 并且可能无法很好地响应即席查询 但你不需要它 Azur
  • AutoMapper 枚举到字节并实现 IMapperConfigurator

    枚举定义是 public enum RowStatusEnum Modified 1 Removed 2 Added 3 public class RowStatusEnumConvertor IMapperConfigurator pub
  • 在 C# 中获取实际日期时间而不是系统日期时间

    我正在构建的应用程序的一部分只能在特定时间段内访问 我知道我们可以使用以下属性获取当前系统时间DateTime在 C 中 如果我使用DateTime属性 然后用户可以更改系统时间并在需要时访问应用程序的部分 请告诉我如何在 C 中获取实际当
  • ObservableCollection CollectionChanged 事件

    我有一个可观察的集合 并且在其上连接了一个 collectionChanged 事件 我将其项目绑定到用户界面中的列表框 当用户从列表框中删除 UI 中的某些项目时 CollectioChanged 会正确触发 但是 我需要知道已删除项目的
  • LinqToExcel:Excel 列中的不同值

    对于各位专家来说 这可能是一件非常简单的事情 但我对 C 4 和 INTEROP 并不熟悉 因此 我很困惑 这是我的问题 我有一个包含重复数据的 Excel 列 我想将其修剪为仅具有唯一值 数据如下所示 ColA ColB 10 Adam
  • 正则表达式 .net 分割

    我可以根据 2 个空格将字符串分成两部分 string Line 1 2 Regex Split Line gt 1 2 我想添加一个例外 仅当 未用 括起来 时才拆分 如此例所示 string Line 1 2 1 2 Regex Spl
  • EntityDataSource 在查询中将 * 替换为 % 通配符

    我有一个在很多地方使用 EntityDataSource 的应用程序 在 EDS 中 我根据 TextBox 中的用户输入手动构建Where 子句 我希望用户在查询数据时能够输入 星号 而不是 有没有像使用 Entity SQL 或 EDS
  • ASP.NET MVC 4 cookie 消失

    我有一个 ASP NET 应用程序 它将身份验证 cookie 发送到 ASP NET MVC 应用程序 用作后台应用程序 我添加了一个全局过滤器 用于检查身份验证 cookie 的每个控制器操作 如果cookie存在 则允许用户进入该页面
  • 为什么 lambda 可以将函数调用转换为 Actions?

    在此代码片段中 List
  • 根据列属性值获取属性值

    List

随机推荐

  • 如何在 PHP 中设置 $PATH?

    我目前正在开发自己的小项目 但有一个小问题 我想将 PATH 环境变量设置为 bin 这样当我使用exec 和类似的功能 它只会搜索该目录中的二进制文件 除非我明确告诉它 我已经尝试过了putenv 除非我启用了安全模式 否则它将无法工作
  • Elasticsearch - 如果术语出现频率越高,得分越高

    我有 2 个文档 正在搜索关键字 Twitter 假设两个文档都是带有 标签 字段的博客文章 文档 A 在 标签 字段中只有 1 个术语 它是 Twitter 文档 B 在 标签 字段中有 100 个术语 但其中 3 个是 Twitter
  • Erlang 代码的持续集成服务器

    您使用什么类型的敏捷工具进行 Erlang 开发 什么持续集成 http en wikipedia org wiki Continuous integration您使用 CI 服务器来构建 Erlang 代码吗 我得到的唯一参考来自 Quo
  • Maven 中央存储库的官方镜像有哪些?

    有谁知道是否有已知 和工作的 Maven 中央存储库 http repo1 maven org maven2 镜像的列表 如果没有 当中央存储库关闭时您使用什么镜像 这是取自 rvxnet 的答案 以及为什么仅链接答案不可取的示例 我从20
  • Tomcat 的接受计数

    我对Tomcat有以下问题acceptCount 它说 当所有传入连接请求的最大队列长度 可能的请求处理线程正在使用中 收到的任何请求 当队列已满时将被拒绝 默认值为 10 我不确定这是如何运作的 我的意思是我知道有一个单独的 TCP 队列
  • QScreenRayCaster 未找到实体。我做错了什么?

    Qt3D 中新 QScreenRayCaster 的描述看起来正是我想要使用的 但我无法让它为我工作 我想在初始化中我需要做一些事情 但我在网上找不到任何示例来为我指明正确的方向 我编写了一个非常简单的程序来测试该功能 它在窗口的中心绘制一
  • Spring Security 将 URL 参数传递给身份验证提供程序

    有没有办法将 URL 参数传递给 Spring Security 3 中的身份验证提供程序 我们的登录页面需要接收电子邮件令牌作为参数 身份验证系统在设置用户状态时需要了解该参数 具体来说 它将允许具有正确令牌的用户登录 否则该用户将无法登
  • Pandas 根据拆分另一列添加新列

    我有一个如下所示的 pandas 数据框 A B US 65 AMAZON 2016 US 65 EBAY 2016 我的目标是看起来像这样 A B country code com US 65 AMAZON 2016 US 65 AMAZ
  • PE 文件中的 OSMajor 和 OSMinor 版本号

    最近我偶然发现了一个奇怪的现象 我正在为 PE 文件构建一个转储程序 很好地阅读了节标题和 可选 节标题 现在 当我到达 OS Major 和 OS Minor 字段时 我注意到一个奇怪的值 WORD OS VERSION major 0x
  • 我应该在 URL 中使用重音字符吗?

    当用英语以外的语言创建网页内容时 搜索引擎优化和用户友好 URL 的问题就会出现 我想知道在 URL 中使用去重音字母是否是最佳实践 冒着某些单词在有或没有某些重音的情况下具有完全不同含义的风险 或者最好坚持使用非英语字符在不太高级的环境
  • CCAvenue:“解密应用程序请求时出错!”

    我正在尝试将 CCAvenue 支付网关集成到我用 swift 4 开发的 iOS 应用程序中 我正进入 状态 错误 解密应用程序请求时出现问题 我已检查以下网址给出的答案 https stackoverflow com a 3732712
  • codegen 和标量结构参数

    Codegen 命令如下 codegen config dll ep1 args single 0 ep2 args 0 0 对于这样的函数来说很容易 function y ep1 u codegen y u function y ep2
  • Python基线校正库

    我目前正在处理一些拉曼光谱数据 并且正在尝试纠正由花期偏差引起的数据 看看下面的图表 我已经非常接近实现我想要的了 正如您所看到的 我试图在所有数据中拟合多项式 而我实际上应该在局部最小值处拟合多项式 理想情况下 我想要一个多项式拟合 当从
  • 如何确定 rspec 控制器测试的主题?

    所以除了好奇之外 我没有什么充分的理由需要知道这一点 最好的理由 但我不确定这里发生了什么 背景 我正在研究 RSpec 书并更新示例 第 24 章 Rails 控制器有一个消息控制器的测试 spec controllers message
  • .NET 结构中的成员相等测试使用什么算法?

    NET 结构中的成员相等测试使用什么算法 我想知道这一点 以便我可以将其用作我自己的算法的基础 我正在尝试为任意对象 在 C 中 编写递归成员相等测试 以测试 DTO 的逻辑相等性 如果 DTO 是结构 则这会容易得多 因为 ValueTy
  • 如何在 blazor wasm 中创建可供下载的 pdf

    在 blazor wasm 中 我想创建一个 pdf 并使其可下载 我测试过pdfflow https www pdfflow io 但只能使其在控制台应用程序中运行 有几种商业解决方案 devexpress syncfusion 但它们确
  • 如何更改 core-image-minimal yocto 中的 init 系统

    我想根据以下内容创建一个新目标core image minimal我想更改 init 系统systemd over SysV init 我希望我的更改是永久性的 不基于 local conf 我怎样才能做到这一点 Edit 正如安德斯在评论
  • 当目标位于另一个 AppDomain 中时,非托管到托管的回调要慢得多

    我使用委托从非托管代码调用托管代码 当我调用默认 AppDomain 中的托管代码时 我测量到每次调用的平均时间为 5 4 纳秒 当我调用第二个 AppDomain 时 我测量到每次调用需要 194 纳秒 默认VS2017 x86发布配置
  • 无法解析库模块中的 Kotlin Android 扩展布局

    我有我的buyer seller模块和一个common模块 两者都使用的布局很少buyer and seller模块被放置在common module common gt layout toolbar xml buyer gt activi
  • 实体框架插入具有相关对象的对象

    我是实体框架的新手 我需要插入一个对象Comment具有相关的 FK 对象User进入数据库 public Class Comment public int CommentID get set public string CommentCo