草庐IT

nhibernate-mapping-by-code

全部标签

c# - 如何在 Entity Framework Code First 中以编程方式使用迁移?

我在一个使用EFCodeFirst的项目中工作。我正在尝试使用迁移功能。我不想使用包控制台管理器。如何以编程方式执行“添加迁移”和“更新数据库”?add-migrationTestMigration01-forceupdate-database 最佳答案 您有几个选择。您可以在代码中使用dbmigrator类:http://romiller.com/2012/02/09/running-scripting-migrations-from-code/或者您可以使用migrate.exe,它可以方便地在构建步骤等中运行它们。https:

c# - 如何安装和使用 Code Contracts?

我有一个基本问题,可能很明显,但出于某种原因,我似乎无法成功安装和使用代码契约(Contract)。我已经从MSDN下载了这个包,并按照在线文档安装了它,但我仍然收到针对以下代码语句的IDE警告:Contract.Requires(inputParameter!="");IDE警告是:“跳过方法调用。编译器不会生成方法调用,因为该方法是有条件的,或者是没有实现的部分方法”在启用代码契约的过程中我遗漏了什么吗?我正在使用VS2010UltimateSP1 最佳答案 这很可能是由于未在项目设置中配置代码契约(Contract)。如果你去

C++中使用哈希表(unordered_map)的一些常用操作方法

1.建立基本数据类型的哈希表2.向哈希表中添加元素1).insert函数2).用数组方法直接添加3.成员函数begin(),end()函数find()查找函数count()查找函数size()函数empty()函数clear()函数swap()函数4哈希表的遍历第一种遍历第二种遍历5哈希实际应用5.2字母异位词2两数之和3数组中出现次数超过一半的数字4哈希统计数组中,数字出现的次数4.14.24.35哈希统计字符串,出现的次数6hash去重7字符串中出现最多的字母6相关文章C++标准库中使用的unordered_map底层实现是哈希表,下面这篇文章主要给大家介绍了关于C++中使用哈希表(uno

c# - 使用 SqlParameter 创建 Order By 子句

我试图将我对SQL语句中变量的所有引用移动到SqlParameter类,但是由于某种原因,此查询失败。stringorderBy=Request.QueryString["OrderBy"];//Fixupthegetvarsif(orderBy==null)orderBy="nameASC";stringselectCommand="SELECTcat_idASid,cat_nameASnameFROMtable_nameORDERBY@OrderBy";SqlCommandcmd=newSqlCommand(selectCommand,dataConnection);cmd.Par

c# - EF Code First 不为 ICollection<string> 生成表

我想要我的一个数据类中的以下ICollection属性(我们称它为“Foo”)publicclassFoo{[Key]publicintFooId{get;set;}publicstringSomeValueOrOther{get;set;}publicvirtualICollectionAllowedBars{get;set;}}我可以在使用实体上下文时添加字符串值,但它们不会“去任何地方”。换句话说,不会生成表示此关系的表,因此不会保存任何值。我期望的是一个包含两列的表,一列用于“FooId”,一列用于“AllowedBar”,EF会自动将其映射到集合(就像它在复杂类型中所做的那样

C# Lambda 表达式和 NHibernate

我是NHibernate伟大世界的新手。我使用的是2.0.1.GA版。这是我的问题。我有一个表Cars,其中包含列Manufacturer(nvarchar(50))和一个主键ID(int)。我的.NET类是:publicclassCar{publicvirtualintID{get;set;}publicvirtualstringManufacturer{get;set;}}现在,如果我想检索梅赛德斯制造的所有汽车,我必须输入:using(varsession=OpenSession()){varcars=session.CreateCriteria(typeof(Car)).Add

c# - 我是否应该始终在 nhibernate 中使用事务(即使是简单的读写)?

我知道对于多部分写入,我应该在nhibernate中使用事务。但是对于简单的读写(1部分)呢……我读到始终使用事务是一种很好的做法。这是必需的吗?我应该做以下简单阅读吗?或者我可以将交易部分全部放在一起吗?publicPrinterJobRetrievePrinterJobById(Guidid){using(ISessionsession=sessionFactory.OpenSession()){using(ITransactiontransaction=session.BeginTransaction()){varprinterJob2=(PrinterJob)session.G

c# - 确保 NHibernate SessionFactory 只创建一次

我编写了一个NHibernateSessionFactory类,它包含一个静态NhibernateISessionFactory。这用于确保我们只有一个session工厂,并且第一次调用OpenSession()时我创建了实际的SessionFactory-下次我使用它并在其上打开一个session。代码如下所示:publicclassNhibernateSessionFactory:INhibernateSessionFactory{privatestaticISessionFactory_sessionFactory;publicISessionOpenSession(){if(_

c# - NHibernate ISet 与 IList

在大多数NHiberate示例中,他们使用ISET而不是IList。我知道两者之间的基本区别即一个集合是唯一的。但是,我不确定为什么他们在延迟加载时使用ISet而不是IList。(Iesi.Collections.Generic)ISet相对于IList有什么优势?延迟加载时的特殊性。 最佳答案 我相信这主要是由于NHibernate的java继承。参见theFAQentryonpersistentcollections.特别提到Java默认情况下如何包含比C#更多的集合,并且它们特别映射到ISet。我相信大多数示例使用它的原因主要

c# - 将断开连接的对象附加到 NHibernate session ;最佳实践?

我的存储库在UnitOfWork模型中工作;所有操作,无论是检索还是持久化,都必须在IDisposableUnitOfWorktoken对象的范围内执行,该对象在幕后与Session执行请求的工作。所以,基本模式是:using(varuow=repo.BeginUnitOfWork()){try{//DBoperationshere;allrepomethodsrequirepassinginuow....repo.CommitUnitOfWork(uow);}catch(Exception){repo.RollbackUnitOfWork(uow);throw;}}我还实现了一些包装