我有一个现有的数据库,我在使用我的表主键“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 :(得分: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。