NHibernateで何か変わっています。私は選択でき、挿入することができます。しかし、私はMySqlに対してやり直すことはできません。NHibernateとMySqlが挿入され、選択されています。更新しません。
:ここは、自分のドメインクラスは流暢マッピング
ここpublic class UserAccountMap : ClassMap<UserAccount>
{
public UserAccountMap()
{
Table("UserAccount");
Id(x => x.Id);
Map(x => x.UserName);
Map(x => x.Password);
Map(x => x.FirstName);
Map(x => x.LastName);
Map(x => x.Phone);
Map(x => x.DeletedDate);
Map(x => x.Enabled);
}
}
は私が私のセッションファクトリー
var dbconfig = MySQLConfiguration
.Standard
.ShowSql()
.ConnectionString(a => a.FromAppSetting("MySqlConnStr"));
FluentConfiguration config = Fluently.Configure()
.Database(dbconfig)
.Mappings(m =>
{
var mapping = m.FluentMappings.AddFromAssemblyOf<TransactionDetail>();
mapping.ExportTo(mappingdir);
});
を作成していますし、これは私のNHibernateのコードがどのようにある
public class UserAccount
{
public virtual int Id { get; set; }
public virtual string UserName { get; set; }
public virtual string Password { get; set; }
public virtual bool Enabled { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string Phone { get; set; }
public virtual DateTime? DeletedDate { get; set; }
public virtual UserAccount DeletedBy { get; set; }
}
です
using (var trans = Session.BeginTransaction())
{
var user = GetById(userId);
user.Enabled = false;
user.DeletedDate = DateTime.Now;
user.UserName = "deleted_" + user.UserName;
user.Password = "--removed--";
Session.Update(user);
trans.Commit();
}
例外はスローされていません。クエリは記録されません。何もない。
NHProfilerでこれを実行しようとしましたか?少なくとも試用版をダウンロードできるはずです。これにより、生成されているSQLが表示されます。これは、私が困惑したときに、通常私を助けます。 –
いいえ、それはおそらく私の次のステップです。私はShowSqlを有効にしているので、SQLが実行されているのがわかり、更新ステートメントは送信されません。個人的に私はSessionFactoryの問題があると思います。 –
事は、Session.Updateがなくても、ユーザーは更新されるべきです。 GetByIdメソッドに特別なものがありますか? :D – sirrocco