mysql - 流畅的 NHibernate 与 MySQL、Mono 和 ASP MVC 3

标签 mysql c#-4.0 nhibernate mono fluent-nhibernate

我正在尝试使用 MySQL 自动映射来配置 Fluent NHibernate,但遇到了问题。我用谷歌搜索了很多并尝试了很多不同的方法,但还没有找到解决方案。

无论如何,这是我的 NHibernate 配置

return 
    Fluently.Configure()
        .Database(
            MySQLConfiguration.Standard.ConnectionString(cs => cs.FromConnectionStringWithKey("Db"))
                    .Dialect<NHibernate.Dialect.MySQL5Dialect>()
                    .ShowSql()
                )
            .Mappings(
                x =>
                x.AutoMappings
                    .Add(
                        FluentNHibernate.Automapping.AutoMap.AssemblyOf<CoreRegistry>()
                        .Where (t => t.IsDefined(typeof(AutoMap), false))
                        .Conventions.Setup (c => {
                            c.Add<NullConvention>();
                            c.Add<PrimaryKeyConvention> ();
                            c.Add<TableNameConvention> ();
                        })
                    )
            ).BuildSessionFactory();

这是我的模型:

[AutoMap]
public class MyNewTable
{
    public virtual int Id {get; set;}

    public virtual string Column1 {get; set;}
    [Null]
    public virtual string Column2 {get; set;}
}

这是我尝试插入记录的代码:

using (var session = sf.OpenSession())
using (var tx = session.BeginTransaction()) {
    var myReallyTable = new MyNewTable
    {
        Column2 = null,
        Column1 = "ghrtehrthrtete"
    };

    session.Save (myReallyTable);

    tx.Commit ();
}

最后,这是它实际生成的 SQL:

INSERT INTO myproject.Core.MyNewTable, myproject.Core, Version=1.0.4911.33346, Culture=neutral, PublicKeyToken=null (Column1, Column2) VALUES (?, ?)

由于某种原因,它在我的表名称之前注入(inject)我的项目的程序集名称,并在其后面附加程序集版本和内容。我尝试将默认架构设置为我的数据库名称。我尝试将方言切换为 MySQLDialect,但这也不起作用。

如果有人对此有任何启发,我将非常感激。

谢谢

最佳答案

好吧,我会回来证明我是个 SCSS 。

我有一个表名称约定,它使用instance.Name而不是instance.EntityType.Name。哦,好吧,如果有人想知道如何使用 MySQL 进行 AutoMap,至少这篇文章会在这里。 :D

关于mysql - 流畅的 NHibernate 与 MySQL、Mono 和 ASP MVC 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17077222/

相关文章:

image - 如何在不加载图像的情况下获取图像的尺寸

asp.net - 导出Excel前添加标题

c# - 协变/逆变是否适用于不实现公共(public)接口(interface)的隐式可转换类型?

c# - 通用存储库和自定义类型的实体 ID

c# - NHibernate 无法确定 X 的类型

php - 使用文本输入值定义自定义类

php - 插入查询无法正常工作

visual-studio-2010 - NHibernate 从 SymbolSource.org 加载符号

PHP PDO : charset, 设置名称?

mysql - 当一张表没有行时 JOIN