2011-02-11 7 views
1

私は既存のデータベースを持っていて、私のテーブルプライマリキー "useridPK"の使用に問題があります。 私はuseridPKのエイリアスとしてデフォルトの "ID"を使用したいと思います。問題のカスタムプライマリキー名

私のモデルは次のように設定されている:

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はLinq-To-SqlではなくEF-CTP4です。 http://stackoverflow.com/questions/3471455/is-dbcontext-the-same-as-datacontext –

答えて

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に戻す必要がありますか?または何か回避策がありますか?ありがとう –