2011-02-11 125 views
1

我有一個現有的數據庫和即時通訊使用我的表主鍵「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中已棄用?

非常感謝 :)

+0

DbContext是EF-CTP4,而不是Linq-To-Sql。 http://stackoverflow.com/questions/3471455/is-dbcontext-the-same-as-datacontext – 2011-02-11 21:03:00

回答

0

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

EF Feature CTP5 Released! 6 Dec 2010 9:00 PM

The full list of data annotations supported in CTP5 is;

ColumnAttribute : Placed on a property to specify the column name, ordinal & data type

如果您正在使用EF的預CTP5版本,或許ColumnAttribute沒有在該版本支持。

+0

我應該首先恢復到CTP4?或者有什麼解決辦法嗎?感謝:D – 2011-02-13 02:52:35