问题自定义主键名称

时间:2011-02-11 11:52:14

标签: sql-server linq-to-sql asp.net-mvc-3

我有一个现有的数据库,我在使用我的表主键“useridPK”时遇到了麻烦。 我想使用默认的“ID”作为我的useridPK的别名。

我的模型设置如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Linq.Mapping;
using System.Data.Linq; 
using System.Data.Entity;
using System.Diagnostics; 

namespace myPROJECT.Models
{
    [Table(Name="AskUsers")]
    public class AskUser
    {
        [Column(Name="useridPK",IsPrimaryKey=true,IsDbGenerated=true)]
        public Int32 ID { get; private set; }
        [Column]
        public int roleidFK { get; set; }
        [Column]
        public string username { get; set; }
        [Column]
        public string password { get; set; }
        [Column]
        public DateTime datecreated { get; set; }
        [Column]
        public string firstname { get; set; }
        [Column]
        public string lastname { get; set; }
    }

    public class myPROJECT_DBContext : DbContext
    {
        public DbSet<AskUser> AskUsers { get; set; }

    }
}

它给出错误:

Exception Details: System.Data.SqlClient.SqlException: Invalid column name 'ID'.

我的控制器代码:

public ActionResult Stuff()
{
    var uu = from x in db.AskUsers
             select x;
    return View(uu.ToList());
}

我不确定这部分是否可以:

[Column(Name="useridPK",IsPrimaryKey=true,IsDbGenerated=true)]

在MVC3中已弃用?

非常感谢 :)

1 个答案:

答案 0 :(得分:0)

根据这篇文章:http://blogs.msdn.com/b/adonet/archive/2010/12/06/ef-feature-ctp5-released.aspx

  

EF功能CTP5发布! 2010年12月6日晚9点

     

CTP5支持的完整数据注释列表是

     

ColumnAttribute:   放置在属性上以指定列名称,序号和&amp;数据类型

如果您使用的是CTP5之前版本的EF,则该版本可能不支持ColumnAttribute。