标签: entity-framework-5

如何使用Entity Framework 5 Beta 2获取在mvc4中工作的枚举?

我使用Nuget在我的MVC3 - > MVC4项目中更新到Entity Framework 5.0.0-beta2.

我正在努力让枚举工作,我添加的每个迁移都忽略了枚举字段.

我在web.config中找到了这个:

  <configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Run Code Online (Sandbox Code Playgroud)

如何将此参考更新为EF5?

这是我需要让枚举工作吗?

asp.net-mvc-4 entity-framework-5

5
推荐指数
1
解决办法
1516
查看次数

是否有SqlGeometryBuilder的实现?

在实体框架中实现空间类型(System.Data.Spatial.DBGeometry)之前,我们可以使用"Microsoft.SqlServer.Types.SqlGeometry"来处理缺少空间支持.该库具有类SqlGeometryBuilder,用于根据不同的几何点创建SqlGeometry.

我决定从SqlGeometry继续到DBGeometry,但我找不到任何与SqlGeometryBuilder过去相同的函数.你知道这有什么功能吗?或者你知道它是否会包含在下一个版本中吗?

提前致谢.

c# spatial sqlgeography entity-framework-5

5
推荐指数
1
解决办法
680
查看次数

EF Code First 5 - 如何使用Fluent API定义可为空的外键?

我有两张桌子 -

 1. Account 

 2. Users
Run Code Online (Sandbox Code Playgroud)

Account表中,DefaultExpensePartnerAccountOwner有外键UserId的字段Users的表.我已经定义了类如下.

public class Account
{
    public int AccountId { get; set; }
    public string AccountName { get; set; }
    public int? AccountOwnerId { get; set; }
    public int? DefaultExpensePartnerId { get; set; }

    public virtual Users AccountOwner { get; set; }
    public virtual Users DefaultExpensePartner { get; set; }
}

public class AccountConfiguration : EntityTypeConfiguration<Account>
{
    public AccountConfiguration()
    {
        this.ToTable("Account");

        this.HasKey(c => c.AccountId);

        this.Property(c …
Run Code Online (Sandbox Code Playgroud)

c# fluent entity-framework-5

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

如何映射Entity Framework 5中的标识关系第一个子实体与多个互斥的父实体

我正在使用Entity Framework 5 Code First,我有以下模型:

class Document
{
    public int Id {get;set;}
    public String Name {get;set;}

    public IList<Page> Pages {get;set;}
}

class DocumentTemplate
{
    public int Id {get;set;}
    public String Description {get;set;}
    public String Name {get;set;}

    public IList<Page> Pages {get;set;}
}

class Page
{
    public int Id {get;set;}
    public string Text {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我知道如何映射子实体有1个父项的识别关系.但我想映射Page实体,以便它具有每个父级的标识关系.

此外,父关系是互斥的.特定页面将属于DocumentTemplate或Document,而不是两者.

实体框架5中是否可以进行这种映射?

我不想为Page创建单独的实体,因为它们基本上是相同的,除了父关系.

TIA.

c# relationship entity-framework-5

5
推荐指数
1
解决办法
700
查看次数

从VS 2012发布到Azure网站时,我的Entity Framework种子数据未插入SQL Azure中

我有一个使用Entity Framework 5.0和Code First的ASP.NET MVC应用程序.

我使用Visual Studio 2012发布了我的网站到Azure网站.除了没有将种子数据插入SQL Azure之外,一切似乎都有效; 该网站的工作,该数据库建成,但种子数据插入.当我在本地计算机上运行时,一切正常.

根据我看到的示例,从Visual Studio 2012发布时,有一个名为"执行代码优先迁移"的选项(见下图).

在此输入图像描述

但是当我尝试发布我的网站时,"执行代码优先迁移"选项不可用. 在此输入图像描述

我相信这可能与我的解决方案配置方式有关.我有3个项目组成我的应用程序.

  • 网站 - 这是一个ASP.NET MVC项目.它确实有一个参考实体框架,但所有数据访问代码(DBContext)都在Data项目中
  • - 这是一个类库.它没有对实体框架的引用
  • 数据 - 该项目引用了实体框架.我有一个继承自DbMigrationsConfiguration的Configuration类.在此Configuration类中,我重写了Seed方法.

这一切都可以在我的本地电脑上运行.在大多数情况下,一切都适用于Azure; 网站工作,数据库建立,但没有插入种子数据.

对于我的场景,当我从Visual Studio 2012发布时,是否有任何建议如何将种子数据插入到SQL Azure中?

entity-framework entity-framework-5 visual-studio-2012 azure-web-sites azure-sql-database

5
推荐指数
1
解决办法
1975
查看次数

实体框架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
查看次数

值"(字符串)"无效

我目前有一个视图,其中包含两个文本框,用户可以在其中输入一些数据.一个文本框仅允许值1-10,另一个文本框为字符串.我不确定我做了什么代码更改,但接受字符串的第二个文本框不再"有效".例如,当我输入一个字符串并尝试提交表单时,我收到一条验证消息,指出"值"(字符串)"无效.以下是我的解决方案中的一些代码片段.

实体:

public class MovieReview
{
    public int Id { get; set; }

    [Range(1, 10)]
    [Required]
    public int Rating { get; set; }
    public string Review { get; set; }
    public int MovieId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

控制器:

public class ReviewsController : Controller
{
    private MovieLoversDb _db = new MovieLoversDb();

    public ActionResult Index([Bind(Prefix = "id")]int movieId)
    {
        var movie = _db.Movies.Find(movieId);
        if (movie != null)
        {
            return View(movie);
        }
        return HttpNotFound();
    }

    [HttpGet]
    public ActionResult Create(int movieId)
    {
        return …
Run Code Online (Sandbox Code Playgroud)

razor asp.net-mvc-4 entity-framework-5

5
推荐指数
1
解决办法
4550
查看次数

实体框架数据库首先:时间戳列不起作用

使用db first方法,我希望我的应用程序在我尝试更新(过时的)实体时抛出并发异常,该实体已经由另一个应用程序/用户/会话更新了数据库中的相应行.

我在.Net 4.5上使用Entity Framework 5.相应的表具有Timestamp列以维护行版本.

concurrency timestamp entity-framework-5

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

Asp.NET MVC - DataAnnotations和ModelState.IsValid是否过于侵入域模型?

我正在从Pro ASP.NET MVC 4这本书中学习ASP.NET MVC (顺便说一下,我喜欢这个版本).

我还在开头的章节中,它向我展示了System.ComponentModel.DataAnnotations命名空间属性,如何使用这些注释来模拟我的模型类,然后如何使用它们来检查模型是否有效(ModelState.IsValidController)中.

例如:

public class GuestResponse
{
    [Required(ErrorMessage = "Please enter your name"]
    public string Name { get; set; }
}

...

public ViewResult RsvpForm(GuestResponse guestResponse)
{
    if(ModelState.IsValid)
    {
        return View("Thanks", guestResponse);

    }

}
Run Code Online (Sandbox Code Playgroud)

有几件事让我感到不安.

  1. 为什么我想要在我的域模型中散布一堆属性?我喜欢我的域模型纯粹而且没有任何特定于实现的东西,并且任何真实世界模型都太复杂而不能像这样使用声明性验证.
  2. ErrorMessage验证属性的参数是否有些View相关?不是那样的东西属于UI图层吗?例如...如果由于空间限制我想要移动版本而不是说"请输入你的名字"说"需要姓名"怎么办?但这是我的模特!
  3. 为什么我要用来ModelState.IsValid确定模型的状态?模特不应该告诉我吗?据我所知,ModelState是利用了的DataAnnotations那个属性在我的模型,但是这似乎也只是非常简单的型号.更复杂的模型甚至可能没有有效/无效状态,它可能只有各种阶段和状态.我在这里散步,但我不喜欢以声明的方式说出是什么让我的模型有效或无效.

任何建议,保证或验证这些想法将不胜感激.

separation-of-concerns data-annotations asp.net-mvc-4 entity-framework-5

5
推荐指数
1
解决办法
2915
查看次数

实体框架连接字符串定义

我只是想知道,实体框架连接字符串究竟是什么意思?喜欢:

metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=testSource;initial catalog=CatalogName;user id=sa;password=***********;multipleactiveresultsets=True;application name=EntityFramework"

我知道provider = System.Data.SqlClient; provider connection string ="data source = testSource; initial catalog = CatalogName; user id = sa; password =**

谁能告诉我字符串metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl; 是什么意思?

而且,还有一件事我需要确认,如果我想在实体连接字符串中编辑,我能做到吗?

c# entity-framework entity-framework-5

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