草庐IT

catalog_product_entity_int

全部标签

c# - 如何在 Entity Framework 中完全锁定一行

我正在处理我们正在处理货币交易的情况。例如,我有一张用户钱包表,该行中有他们的余额。UserId;WalletId;Balance现在在我们的网站和网络服务中,每次发生特定交易时,我们需要:检查是否有足够的资金来执行该交易:从余额中扣除交易费用。在整个交易期间锁定该行/实体的正确方法是什么?根据我所读到的一些解决方案,其中EF标记一个实体,然后在将其保存回数据库时比较该标记,但是当另一个用户/程序已经编辑了该数量时它会做什么?我可以用EF实现吗?如果不是,我还有什么其他选择?调用存储过程是否允许我正确锁定该行,以便在程序A锁定该行时没有其他人可以访问SQLServer中的该行?

c# - 如何刷新 Entity Framework Core DBContext?

当我的表被另一方更新时,dotnetcore中的数据库上下文仍然返回旧值,我如何强制刷新数据库上下文?我做过研究,但我只发现人们使用Reload方法来强制刷新上下文,这在EF核心中不可用。其他一些解决方案建议在使用后处理上下文,但我收到错误消息说数据库上下文是由依赖注入(inject)创建的,我不应该搞砸它。 最佳答案 哦,这个问题让我纠结了好几天。我将VisualStudio2017与.NetCore2.1结合使用,我的EFCore代码如下所示://1.Loada[User]recordfromourdatabaseintchos

c# - C# 和 SQL Server 中 int 到 guid 的不同转换

在C#和SQLServer中将int转换为guid时,我得到不同的值。在C#中我使用这个方法publicstaticGuidInt2Guid(intvalue){byte[]bytes=newbyte[16];BitConverter.GetBytes(value).CopyTo(bytes,0);returnnewGuid(bytes);}Console.Write(Int2Guid(1000).ToString());//writes000003e8-0000-0000-0000-000000000000在我使用的SQLServer中selectcast(cast(1000asva

c# - 在 Entity Framework 核心中合并迁移

是否可以将所有迁移文件合并为一个文件?我创建了初始迁移。dotnetefmigrationsaddInitialMigrationSource每当我进行一些模型更改时,我都会创建新的迁移更新。但是现在我的迁移更新文件太多了。是否可以将所有迁移文件合并为一个文件?当然不能删除数据库,我必须保留数据! 最佳答案 EF6.X有一个选项IgnoreChanges。这非常适合您的场景。但不幸的是,它不是EF核心中可用的功能。但有一个解决方法。第1步:删除Migrations文件夹中的所有迁移脚本。第2步:在包管理器控制台中:运行PM>Add-

c# - DDD : Enum like entities

我有以下数据库模型:**Persontable**ID|Name|StateId------------------------------1Joe12Peter13John2**Statetable**ID|Desc------------------------------1Working2Vacation领域模型将是(简化的):publicclassPerson{publicintId{get;}publicstringName{get;set;}publicStateState{get;set;}}publicclassState{privateintid;publicstri

c# - 无法在 VS 2017 .NET Core 上为 Entity Framework 启用迁移

我刚刚安装了VS2017并创建了一个新的核心项目。在其中,我添加了:Microsoft.EntityFrameworkCore(1.1.0)Microsoft.NETCore.App(1.1.0)我还创建了一个名为Models的文件夹,其中包含一个类。然后,我转到程序包管理器控制台并执行enable-migrations,这样VS就会创建我需要的文件。但是,我收到的不是所需文件,而是以下错误。Theterm'enable-migration'isnotrecognizedasthenameofacmdlet,function,scriptfile,oroperableprogram.C

c# - Linq to Entities删除

是否有使用主键使用LinqtoEntites进行删除的内置方法。目前的解决方法是创建一个名为DeleteTable的存储过程(表是表名)然后在C#LINQToEntities中我只执行context.DeleteTable(ID)这是最好的方法吗?还有哪些其他选择? 最佳答案 如果您不想去数据库检索对象的所有字段,您可以创建该类的一个新实例,将其附加到一个新的上下文,删除它,然后保存更改。这让EF生成适当的删除命令。using(varcontext=newMyContext()){varmyObject=newMyObject{ID

C#:将 '0' 转换为 int

我看到了这样一段代码:privatereadonlyobject[]m_Values={(int)0,(int)0};将0转换为int的想法是什么?它不是“默认”的int吗? 最佳答案 没有必要。我假设程序员以前被咬过。我会把它作为一个谜题发布,在这个程序中将调用哪个重载?usingSystem;classProgram{staticvoidMain(string[]args){Foo.Bar(0);Console.ReadLine();}}classFoo{publicstaticvoidBar(bytearg){Console.

c# - Entity Framework 4.3.1 到 6 EDMX (ObjectContext)

我正在尝试将项目从EF4.3.1升级到EF6.0模板使用ObjectContext,现在,每当我更改模板时,它都会用旧的EF4.3.1命名空间覆盖*.Designer.cs文件中生成的代码,因此构建中断。有什么办法可以阻止这种情况发生吗?我看不到要破解的*.tt文件。重新生成EDMX并不是一个真正的选择,因为对概念模型进行了重大定制(我会花好几天时间!)。我已经尝试创建一个新的EDMX作为测试,但它出现了同样的问题。一旦我将ObjectContext使用的代码生成更改为“默认”,EDMXName.Designer.cs文件就会使用旧命名空间编写。usingSystem;usingSys

c# - DotNet - 什么是 int*?

简单的问题,我导入了一个DLL函数,参数是int*。当我尝试输入Method(0)时,出现错误消息:“intandint*cannotconvert”。这是什么意思? 最佳答案 这是指向int的指针的经典C表示法。每当类型后跟*时,它表示该类型为pointer。到那种类型。在C#中,与C不同,除了启用unsafe之外,您还必须将函数显式定义为unsafe才能使用指针。项目属性中的代码。指针类型也不能直接与具体类型互换,因此必须首先获取类型的引用。要在C#(或C和C++)中获取指向另一种类型(例如int)的指针,您必须在您希望的变量前