首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SubmitChanges并不总是更新数据库

SubmitChanges并不总是更新数据库
EN

Stack Overflow用户
提问于 2012-09-15 06:27:21
回答 2查看 1K关注 0票数 1

我使用的是ASP.NET MVC 4 (.NET框架4.5)和LINQ和Server 2008 R2。

如果通过调试模式运行该函数,则此函数将始终返回true,但如果不进行调试,则返回false。我曾经得到过一个错误:http://i.imgur.com/HydhT.png

我试着搜索这个,出现了一些类似的问题,但我检查了所有这些:

  • UserProfiles表有一个主键
  • 数据文本与数据库同步。
  • 我尝试将ConflictMode.ContinueOnConflict作为SubmitChanges()中的一个参数
  • 我试图将LINQ中的UpdateCheck=UpdateCheck.Never放在facebookID之上:

毫无办法。我以前从未经历过这样的事情。有人知道吗?

代码:

Server中的facebookID字段为varchar(50) NULL,默认值为NULL

代码语言:javascript
运行
AI代码解释
复制
public static bool changeFacebookIDByEmail(string email, string facebookID)
{
    UserProfile profile = (from s in _dc.Users
                           join u in _dc.Memberships on s.UserId equals u.UserId
                           join i in _dc.UserProfiles on u.UserId equals i.userID
                           where u.Email == email
                           select i).SingleOrDefault();

    profile.facebookID = facebookID;

    ChangeSet cs = _dc.GetChangeSet();

    _dc.SubmitChanges();

    if (cs.Updates.Count <= 0)
        return false;
    else
        return true;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-16 03:37:16

似乎您正在执行一个手动SQL语句:

代码语言:javascript
运行
AI代码解释
复制
UPDATE UserProfiles SET facebookID = NULL WHERE userID = '85A6D951-15C8-4892-B17D-BD93F3D0ACBB'

这将将facebookID设置为空。但是,实体框架不知道这一点。它不能解释原始SQL。因此,它仍然认为facebookID被设置为某种值。当您稍后在changeFacebookIDByEmail中将其设置为该值时,EF认为没有什么改变。

Sou您可能不应该执行原始SQL字符串。使用EF将值更改为null。

票数 1
EN

Stack Overflow用户

发布于 2012-09-15 14:23:14

将.singleordefault改为.single,我认为您的问题很快就会暴露出来。

基本上,在数据文本中使用be查询可以找到任何内容。任何新事物(如违约)。

您需要重写您的例程,以便在找不到新用户的情况下插入它。

编辑

这是我一直在做的一个项目的一些代码。我已经剪掉了一堆东西来演示它应该如何工作。

代码语言:javascript
运行
AI代码解释
复制
// add the identity as necessary
var found = dB.Identities.SingleOrDefault(q => q.UserName == userName);

if (found == null)
{
    found = new Identity
    {
        Domain = domain,
        Password = User.Identity.AuthenticationType,
        Salt = "",
        UserName = userName,
        LastUpdatedDateTime = DateTime.Now
    };

    dB.Identities.InsertOnSubmit(found);
}



dB.SubmitChanges(null);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12438194

复制
相关文章
aws生产实践-22:aws上创建openvpn
https://github.com/hepyu/openvpn-install/blob/master/openvpn-install.sh
千里行走
2022/02/10
1.7K0
aws生产实践-22:aws上创建openvpn
AWS WAF bypass
x="=='='onmouseover=confirm`xss` style="display:block;width:1000px;height:1000px;background:red">
Khan安全团队
2023/02/23
1.3K0
AWS WAF bypass
AWS alb 了解
Elastic Load Balancing 在一个或多个可用区中的多个目标(如 EC2 实例、容器和 IP 地址)之间自动分配传入的流量。它会监控已注册目标的运行状况,并仅将流量传输到运行状况良好的目标。Elastic Load Balancing 根据传入流量随时间的变化对负载均衡器进行扩展。它可以自动扩展来处理绝大部分工作负载。
heidsoft
2022/01/17
2.3K0
AWS alb 了解
AWS 再次宕机
亚马逊AWS今天再次遭遇故障,这起事件影响了众多在线服务,包括 Twitch、Zoom、PSN、Xbox Live、Doordash、Quickbooks Online和Hulu等。 据AWS的状态页面显示,这起故障始于太平洋标准时间上午7点43分左右,影响了US-WEST-1和US-WEST-2这两个区域。 据报道 ,这起事件已造成了严重的互联网连接问题,导致一大批在线平台和网站随之瘫痪。 AWS的工程师们正在努力搞清楚这次故障背后的根本原因,并表示他们已经采取措施,以恢复互联网连接。 AWS状态页面显示
云头条
2022/03/18
8260
AWS医疗NLP
命名实体识别(Named Entity Recognition,NER)是目前最流行和最有需求的自然语言处理任务之一。随着NER的扩展,它也变得更加特定于领域。
磐创AI
2021/09/03
1.5K0
[工作随笔]Python 和 CDK的aws-route53那些事
AWS CDK,与使用 YAML(或 JSON)的声明式方法相比,CDK 允许您命令式声明基础设施。主要语言为 TypeScript,同时也支持另外几种语言。
DriverZeng
2022/10/31
9750
[工作随笔]Python 和 CDK的aws-route53那些事
laravel使用aws笔记
一、引入composer "aws/aws-sdk-php": "^3.137", "league/flysystem-aws-s3-v3": "^1.0" 二、添加配置 's3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), #key 'secret' => env('AWS_SECRET_ACCESS_KEY'), #秘钥 're
苦咖啡
2020/05/12
1.3K0
AWS 架构柱子学习
在设计工作负载时,您会基于您的业务环境在各个支柱之间做出权衡。这些业务决策可以确定设计优先事项。您可以优化您的架构,例如在开发环境中以牺牲一部分可靠性来降低成本;而对于关键业务生产环境,您可以通过增加成本来提高可靠性。在电子商务解决方案中,性能可能会影响收入和客户的购买偏好。对于安全性和卓越运营,一般不会在它们和其他支柱之间进行权衡。
heidsoft
2022/01/17
5660
AWS 架构柱子学习
aws跨域问题
http://docs.aws.amazon.com/zh_cn/AmazonS3/latest/dev/cors.html
零式的天空
2022/03/22
9380
Deploy TiDB on AWS EKS
how to deploy a TiDB cluster on AWS Elastic Kubernetes Service (EKS) ?
杨漆
2021/03/09
1.1K0
Deploy TiDB on AWS EKS
AWS Lambda 快速入门
但以上的几个方法都需要关注服务器的存储和计算资源,以便随时调整以满足更高的性能,并且高并发的请求也是分时段的,配置了更高性能的服务器在访问量变低的时候也是资源浪费。
goodspeed
2020/12/22
2.8K0
AWS Lambda  快速入门
AWS lambda and dynamodb with Java
使用aws lambda已经一年多了,下面使用java构建一个简单的lambda服务,大家可以自己扩展想要的功能,废话不多说,开始吧。
wblearn
2020/09/16
1K0
逆向 AWS API 设计
云计算爱好者
2017/12/20
9690
AWS攻略——一文看懂AWS IAM设计和使用
一言以蔽之,AWS IAM就是为了管理:谁 (不)可以 对什么 做什么。(转载请指明出于breaksoftware的csdn博客)
方亮
2022/09/30
1.2K0
AWS攻略——一文看懂AWS IAM设计和使用
AWS CloudFront 如何设置 TTL
通常默认情况下 AWS CloudFront 的刷新时间是 24 个小时,可以理解就是如果你更新了 S3 的内容,你可能需要等 24 小时才能看到变化。
HoneyMoose
2022/01/06
1.4K0
【AWS系列】镭速RaySync VS FTP (8)- AWS悉尼到腾讯云广州
Windows Server: https://www.raysync.cn/support_for_windows.html
云语科技
2018/03/07
1.1K0
【AWS系列】镭速RaySync VS FTP (8)- AWS悉尼到腾讯云广州
【AWS系列】镭速RaySync VS FTP (10)- AWS韩国到腾讯云广州
Windows Server: https://www.raysync.cn/support_for_windows.html
云语科技
2018/03/07
1.1K0
【AWS系列】镭速RaySync VS FTP (10)- AWS韩国到腾讯云广州
亚马逊AWS 进军 WAN 市场:发布 AWS Cloud WAN 正式版
2022年7月14日,AWS宣布推出AWS Cloud WAN的正式版,这是一种新的托管服务,可连接本地数据中心、托管设施、分支机构和AWS云区域,以简化全球网络的运营。 借助AWS Cloud WAN,企业可以使用中央管理仪表板来定义网络配置、查看全球网络的运行状况,并自动执行日常配置和安全任务。 这家云巨头于2021年12月在拉斯维加斯举行的AWS re:Invent大会上首次介绍了AWS Cloud WAN。 AWS已经在帮助企业使用Amazon Virtual Private Cloud、AWS
云头条
2022/07/19
4250
亚马逊AWS 进军 WAN 市场:发布 AWS Cloud WAN 正式版
AWS培训:Service Catalog使用
AWS Service Catalog利用,组织可以创建和管理获准用于的 IT 服务的目录。AWS. 这些 IT 服务可以包含所有内容,从虚拟机映像、服务器、软件、数据库等到完整的多层应用程序架构一应俱全。
heidsoft
2022/01/17
5840
AWS培训:Service Catalog使用
AWS EKS metrics not working issue
AWS EKS metrics by default not installed and after installation, we can't get the metrics. The problem is caused by internal IP, so fixing the deployment.yaml by adding
贺思聪
2020/04/30
5420
AWS EKS metrics not working issue

相似问题

运行对接器-与Python的“fabric”组合

40

多行对接器运行命令

23

Catel与对接系统一起使用(例如Avalon对接)

12

在运行过程中使用对接器

30

Docker编写和rabbitmq对接器图像插件

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档