小编Ale*_*dro的帖子

实体框架5不生成[Key]属性

我在VS2012上使用EF5,当表生成时我遇到了问题.

1)我创建了一个包含2个表的简单数据库模式(edmx):

  • 表1:人
  • 属性:Id(Guid)
  • 属性:名称(字符串)

  • 表2:角色

  • 属性:Id(Guid)
  • 属性:类型(字符串)
  • 属性:PersonId(Guid)(与表Person关联)

2)将唯一键的属性(称为Id)定义为:

  • 并发模式:无
  • 默认值:无
  • 实体密钥:真实
  • Getter:公开
  • 姓名:Id
  • 可空:错误
  • 塞特:公众
  • StoreGeneratedPattern:Identity
  • 类型:Guid(我也试过Int32)

3)实体模型的属性是:

  • 代码生成策略:无
  • 数据库生成工作流:TablePerTypeStrategy(VS)
  • 数据库架构名称:dbo
  • DDL生成模板:SSDLToSQL10.tt(VS)
  • 实体容器访问:公共
  • 实体容器名称:DatabaseSchemaContainer
  • 延迟加载已启用:正确
  • 元数据工件处理:嵌入输出程序集
  • 命名空间:DatabaseSchema
  • 多元化的新目标:错误
  • 保存时转换相关文本模板:True
  • 更新Property Facets:True
  • 在Build上验证:True

4)生成相关的类,但不存在[Key]属性:

using System;
using System.Collections.Generic;

public partial class Person
{
    public Person()
    {
        this.Role = new HashSet<Role>();
    }

    //[Key] <-- Missed!
    public System.Guid Id { get; set; }
    public string Name { get; set; }

    public virtual ICollection<Role> Role { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

5)我创建一个域服务,将上述实体暴露给客户端,如:

[EnableClientAccess] …
Run Code Online (Sandbox Code Playgroud)

entity-framework entity-framework-5 visual-studio-2012

5
推荐指数
2
解决办法
2566
查看次数