代码之家  ›  专栏  ›  技术社区  ›  Igal Tabachnik

无法使用ActiveRecord创建架构

  •  3
  • Igal Tabachnik  · 技术社区  · 14 年前

    我正在尝试开始使用Castle ActiveRecord(以下是 "Getting started with ActiveRecord" 放映)。

    User app.config

    var config = ActiveRecordSectionHandler.Instance;
    ActiveRecordStarter.Initialize(typeof(User).Assembly, config);
    
    ActiveRecordStarter.CreateSchema();
    

    不幸的是,当我运行此程序时,出现以下异常:

    Castle.ActiveRecord.Framework框架.ActiveRecordException异常: 无法创建架构---> 关键字附近的语法不正确 '用户'。---&燃气轮机; System.Data.SqlClient客户端.SqlException异常: '用户'

    我上传了一个小复制品到 http://bitbucket.org/hmemcpy/general 有人能告诉我我做错了什么吗?

    谢谢!

    1 回复  |  直到 14 年前
        1
  •  3
  •   Elisha    14 年前

    用户

    create table User (Id INT IDENTITY NOT NULL,
                       UserName NVARCHAR(255) null unique,
                       primary key (Id))
    

    在SQLServer中为表用户命名是非法的,但命名是合法的 [用户] .

    create table [User] (Id INT IDENTITY NOT NULL,
                       UserName NVARCHAR(255) null unique,
                       primary key (Id))
    

    [ActiveRecord("[User]")]
    public class User : ActiveRecordLinqBase<User>
    {
        [PrimaryKey]
        public int Id { get; set; }
    
        [Property(Unique = true)]
        public string UserName { get; set; }
    
        [HasMany]
        public IList<Activity> Activities { get; set; }
    }
    

    当使用 [ ]

    [ActiveRecord]
    public class Activity : ActiveRecordLinqBase<Activity>
    {
        [PrimaryKey]
        public int Id { get; set; }
    
        [BelongsTo("[User]")]
        public User User { get; set; }
    }
    

    当然,还有别的名字吗 [ActiveRecord("SomeUser")] 会有用的。

    推荐文章