【C# 生成 MongoDB 中的 ID主键唯一】教程文章相关的互联网学习教程文章

C# 生成 MongoDB 中的 ID主键唯一

ObjectId介绍 在MongoDB中,文档(document)在集合(collection)中的存储需要一个唯一的_id字段作为主键。这个_id默认使用ObjectId来定义,因为ObjectId定义的足够短小,并尽最大可能的保持唯一性,同时能被快速的生成。 ObjectId 是一个 12 Bytes 的 BSON 类型,其包含:4 Bytes 自纪元时间开始的秒数 3 Bytes 机器描述符 2 Bytes 进程ID 3 Bytes 随机数ObjectId的存储使用Byte数组,而其展现需将Byte数组转换成字符串进行显示,...

c#-聚集根具有复合主键的存储库【代码】

信息库应该作为聚合根的边界,即IRepository< TAggreagte>.将提供CRUD功能,以事务方式将数据保存到DB.到现在为止还挺好. 但是,如果聚合具有复合主键怎么办?在我的问题中,它是一个Identity INT列以及一个SMALLINT序列号. (这是数据库设计,不是我的主意!) 我见过的存储库示例都有例如无效Add(TAggregate聚合)或bool Add(TAggregate聚合). 使用“最终一致性”的示例: 我想添加聚合A,并且需要调用存储库A,然后使用存储库B插入从属聚合...

c#-Azure应用服务(移动应用)违反主键约束【代码】

我正在使用Azure App Services(移动应用程序)来通过SQLite使用脱机同步功能来开发应用程序.我的数据对象模型是:public class Customer : EntityData {public string FirstName { get; set; }public string LastName { get; set; }//…public DateTime DateCreated { get; set; }public DateTime DateModified { get; set; }public virtual IList<Card> Cards { get; set; } } public class Card : EntityData {public bool IsDisa...

c#-实体框架-存储过程结果为没有主键的实体【代码】

如果已经提出并回答了这个问题,请原谅我.如果是这样,请指出.我正在使用带有最新Service Pack的VS2010 over .Net 3.5(平台更新不在我的控制范围内). 我有一个存储的过程,它将返回类似以下的行.没有其他列可以用作此实体的键;结果看起来像这样:COUNTRYCODE QUANTITY USA 100 UK 250 USA 300 USA 190等等. 我遵循了从http://blogs.microsoft.co.il/blogs/gilf/archive/2009/0...

首页> C#>如何获取表和主键,并显示空,如果表没有主键?【代码】

我目前正在尝试通过在C#中调用以下SQL来检索每个表的表名和主键.到目前为止,这是我尝试过的:SELECT t.TABLE_NAME As 'Table Name',Keys.COLUMN_NAME AS 'Primary Key' FROM INFORMATION_SCHEMA.TABLES t left outer join INFORMATION_SCHEMA.TABLE_CONSTRAINTS Constraintson t.TABLE_NAME = Constraints.Table_name and t.Table_Schema = Constraints.Table_Schema left outer join INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS K...

c# 利用反射获取表主键并设置值【代码】【图】

private void SetTablePrimaryKey<T>(T entity) { PropertyInfo pkProp = typeof(T).GetProperties().Where(p => p.GetCustomAttributes(typeof(KeyAttribute), false).Length >0).FirstOrDefault(); //主键名称 var keyName = pkProp.Name; //实体类中主键的值 //var keyId = pkProp.GetValue(entity).ToString(); foreach (PropertyInfo p in entity.GetType().GetProperties()) { if (p.Name.ToString() == keyName) { p.SetVal...

c# – 使用AutoMapper,“相同类型的实体已经具有相同的主键值”错误【代码】

当我使用AutoMapper时,出现此错误:Attaching an entity of type ‘MyProject.DAL.User’ failed because another entity of the same type already has the same primary key value. This can happen when using the ‘Attach’ method or setting the state of an entity to ‘Unchanged’ or ‘Modified’ if any entities in the graph have conflicting key values. This may be because some entities are new and have not ...

c# – 如何更新另一个表中作为外键引用的表的主键?【代码】

假设一个Table "Person" having "SSN","Name","Address"和另一个Table "Contacts" having"Contact_ID","Contact_Type","SSN" (primary key of Person)同样Table "Records" having"Record_ID","Record_Type","SSN" (primary key of Person)现在我希望当我更改或更新SSN in person表时,相应地在其他2个表中更改. >如果有人可以帮我解决这个问题>或者如何为表传递外键约束解决方法:只需将ON UPDATE CASCADE添加到外键约束即可.

c# – 一对多映射,property-ref不在主键上【代码】

我有一个我无法解决的问题.也许有人遇到过类似的问题. 我有两个类 – 人员和联系人和映射,以加载人的所有联系人.这些示例都经过简化,以便更好地阅读. Person.cspublic class Person {public long Id { get; set; }public long ObjectId { get; set; }public IList<Contact> Contacts { get; set; } }Contact.cspublic class Contact {public long Id { get; set; }public string Text { get; set; } }Person.hbm.xml<property name...

c# – 与Azure同步时如何不违反此主键?【代码】

项目总结 我们正在创建一个“数字”厨房,可以添加冰箱,冰柜等物品.然后,您可以在网络应用程序中查看这些物品,这样您就可以随时随地了解厨房中的杂货. 数据库 总共有三张桌子. 清单 它包含这些列表的ListID和名称,如“Fridge”或“Freezer”.所以,这基本上就是’容器’. 项目 然后有物品持有物品类型,即牛奶,1加仑. listItems中 然后是ListItems(抱歉有点令人困惑的名字),它包含特定的项目.虽然Items只是可以添加的项目表,但ListIte...

c# – 无法更新,因为没有主键【代码】

我有一个WPF C#桌面应用程序,我正在使用SQLite. 我有这个型号:using SQLite;[Table("Customer")] public class Customer {[AutoIncrement][PrimaryKey]public int CustomerId { get; set; } public string CustomerRef { get; set; }public string SName { get; set; }public string FName { get; set; } public string ContactNo { get; set; }public string Email { get; set; }public string Add1 { get; set; }public ...

c# – 即使定义了其他主键,Entity Framework 6也会创建Id列【代码】

我将DataObject定义为:public class SensorType : EntityData {//PKspublic string CompanyId { get; set; }public string ServiceId { get; set; }public string Type { get; set; } }并使用流畅的API使CompanyId和ServiceId成为一个复合键:modelBuilder.Entity<SensorType>().HasKey(t => new { t.CompanyId, t.ServiceId });//No autogeneration of PKs modelBuilder.Entity<SensorType>().Property(t => t.ServiceId).HasDat...

c# – 领域:自动递增主键【代码】

我正在通过实施一个简单的财务簿记工具来尝试Realm.我正在使用类似于以下内容的模式(从基于sql的项目继承)最初,我使用类型为long的PrimaryKey为所有这些表设置类.然后我了解到,至少截至2015年,领域doesn’t support auto-increment.在我自己的测试中,它似乎是真的,因为我得到一个例外,说0是一个重复的主键. 看一下getting started guide上的例子,我试图重新评估我是否真的需要特定的Id字段.在大多数情况下,除了在数据库中使用主键的...

c# – 数据传输对象中的属性是否应扩展外键或仅显示其主键

我有一个EmployeeDTO,它在数据库中表示一个Employee记录. Employee表与Department有关系,与Permission有1对多的关系. 在我的实体中,这些表示为完全展开的Department属性和完全展开的权限对象的List. 问题是DTO是否应该完全扩展DepartmentId的DepartmentDTO属性? DTO是否应该具有PermissionId列表的完全扩展的PermissionDTO属性列表?解决方法:就像设计中的一切一样,这取决于您的需求. >如果你需要经常看到和绑定到子属性,你想要使...

c# – 在同一个表的主键上创建外键约束的不良做法?

我试图在我的数据库中做一个注释表,并将子注释存储在同一个表中.我会在名为“ParentId”的列上放置一个外键约束,该列将链接到CommentId列,该列是同一个表的主键.如果它是父评论,那么我将为ParentId赋予它null.这是不好的做法吗?如果是这样,有什么更好的方法来解决这个问题.解决方法:这可以.您需要考虑的一件事是,如果删除带有子项的评论该怎么办. FK约束将阻止删除,并且级联删除的常见解决方案在这里似乎不合适,也不会使父引用为N...