标签: entity-framework

实体框架与LINQ to SQL

现在已经发布了.NET v3.5 SP1(以及VS2008 SP1),现在我们可以访问.NET实体框架了.

我的问题是这个.在尝试使用Entity Framework和LINQ to SQL作为ORM时,有什么区别?

我理解它的方式,实体框架(当与LINQ to Entities一起使用时)是LINQ to SQL的"大哥"?如果是这种情况 - 它有什么优势?它能做什么LINQ to SQL本身无法做到的?

.net entity-framework linq-to-sql

808
推荐指数
15
解决办法
26万
查看次数

一个或多个实体的验证失败.有关详细信息,请参阅"EntityValidationErrors"属性

我在使用代码优先方法播种数据库时遇到此错误.

一个或多个实体的验证失败.有关详细信息,请参阅"EntityValidationErrors"属性.

说实话,我不知道如何检查验证错误的内容.Visual Studio向我显示它是一个包含8个对象的数组,因此有8个验证错误.

这与我之前的模型有关,但我做了一些修改,我在下面解释:

  • 我有一个名为Status的枚举,我将其更改为名为Status的类
  • 我将类ApplicantsPositionHistory更改为在同一个表中有2个外键

请原谅我的长代码,但我必须将其全部粘贴.在以下代码的最后一行中抛出异常.

namespace Data.Model
{  
    public class Position
    {
        [DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.Identity)]   
        public int PositionID { get; set; }

        [Required(ErrorMessage = "Position name is required.")]
        [StringLength(20, MinimumLength = 3, ErrorMessage = "Name should not be longer than 20 characters.")]
        [Display(Name = "Position name")]              
        public string name { get; set; }

        [Required(ErrorMessage = "Number of years is required")] 
        [Display(Name = "Number of years")]        
        public int yearsExperienceRequired { get; set; }

        public virtual ICollection<ApplicantPosition> applicantPosition { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework entity-framework-4 entity-framework-4.1

767
推荐指数
19
解决办法
68万
查看次数

MetadataException:无法加载指定的元数据资源

突然间,我一直MetadataException在实例化我生成的ObjectContext类.App.Config中的连接字符串看起来是正确的 - 自上次工作以来没有改变 - 我尝试从底层数据库重新生成一个新模型(edmx文件)而没有任何变化.

有人有主意吗?

更多细节:我没有更改任何属性,我没有更改任何输出程序集的名称,我没有尝试在程序集中嵌入EDMX.我离开工作只等了10个小时,直到我回来.然后它不再工作了.

我试过重新创建EDMX.我试过重新创建这个项目.我甚至尝试从头开始重新创建数据库.没有运气,无论如何.

.net c# ado.net entity-framework

661
推荐指数
16
解决办法
45万
查看次数

实体框架中最快的插入方式

我正在寻找插入Entity Framework的最快方法.

我问这个是因为你有一个活跃的TransactionScope并且插入很大(4000+).它可能持续超过10分钟(事务的默认超时),这将导致事务不完整.

c# sql entity-framework

640
推荐指数
17
解决办法
38万
查看次数

代码优先与模型/数据库优先

使用实体框架4.1代码优先于模型/数据库优先使用EDMX图表有什么优缺点?

我正在尝试完全理解使用EF 4.1构建数据访问层的所有方法.我正在使用Repository模式和IoC.

我知道我可以使用代码优先方法:手动定义我的实体和上下文并用于ModelBuilder微调模式.

我还可以创建一个EDMX图表并选择一个代码生成步骤,该步骤使用T4模板生成相同的POCO类.

在这两种情况下,我最终POCO都得到了ORM不可知的对象和源自的上下文DbContext.

数据库优先似乎最吸引人,因为我可以在企业管理器中设计数据库,快速同步模型并使用设计器对其进行微调.

那么这两种方法有什么区别?是仅仅关于VS2010与企业管理器的偏好?

entity-framework poco ef-code-first entity-framework-4.1 ef-database-first

607
推荐指数
9
解决办法
29万
查看次数

已经有一个与此命令关联的打开DataReader,必须先关闭它

我有这个查询,我在这个函数中得到错误:

var accounts = from account in context.Accounts
               from guranteer in account.Gurantors
               select new AccountsReport
               {
                   CreditRegistryId = account.CreditRegistryId,
                   AccountNumber = account.AccountNo,
                   DateOpened = account.DateOpened,
               };

 return accounts.AsEnumerable()
                .Select((account, index) => new AccountsReport()
                    {
                        RecordNumber = FormattedRowNumber(account, index + 1),
                        CreditRegistryId = account.CreditRegistryId,
                        DateLastUpdated = DateLastUpdated(account.CreditRegistryId, account.AccountNumber),
                        AccountNumber = FormattedAccountNumber(account.AccountType, account.AccountNumber)
                    })
                .OrderBy(c=>c.FormattedRecordNumber)
                .ThenByDescending(c => c.StateChangeDate);


public DateTime DateLastUpdated(long creditorRegistryId, string accountNo)
{
    return (from h in context.AccountHistory
            where h.CreditorRegistryId == creditorRegistryId && h.AccountNo == accountNo
            select h.LastUpdated).Max();
}
Run Code Online (Sandbox Code Playgroud)

错误是: …

c# entity-framework entity-framework-4

592
推荐指数
7
解决办法
41万
查看次数

如何查看实体框架生成的SQL?

如何查看实体框架生成的SQL?

(在我的特殊情况下,我正在使用mysql提供程序 - 如果它很重要)

ado.net entity-framework

587
推荐指数
18
解决办法
29万
查看次数

如何在Entity框架中获取插入实体的Id?

我在Asp.net中遇到了Entity Framework的问题.每当我将对象添加到数据库时,我想获取Id值.我怎样才能做到这一点?

c# entity entity-framework

575
推荐指数
7
解决办法
37万
查看次数

来自实体框架的SqlException - 不允许新事务,因为会话中还有其他线程在运行

我目前收到此错误:

System.Data.SqlClient.SqlException:不允许新事务,因为会话中还有其他线程在运行.

在运行此代码时:

public class ProductManager : IProductManager
{
    #region Declare Models
    private RivWorks.Model.Negotiation.RIV_Entities _dbRiv = RivWorks.Model.Stores.RivEntities(AppSettings.RivWorkEntities_connString);
    private RivWorks.Model.NegotiationAutos.RivFeedsEntities _dbFeed = RivWorks.Model.Stores.FeedEntities(AppSettings.FeedAutosEntities_connString);
    #endregion

    public IProduct GetProductById(Guid productId)
    {
        // Do a quick sync of the feeds...
        SyncFeeds();
        ...
        // get a product...
        ...
        return product;
    }

    private void SyncFeeds()
    {
        bool found = false;
        string feedSource = "AUTO";
        switch (feedSource) // companyFeedDetail.FeedSourceTable.ToUpper())
        {
            case "AUTO":
                var clientList = from a in _dbFeed.Client.Include("Auto") select a;
                foreach (RivWorks.Model.NegotiationAutos.Client client in clientList)
                { …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework transactions inversion-of-control

571
推荐指数
10
解决办法
19万
查看次数

找不到具有不变名称"System.Data.SqlClient"的ADO.NET提供程序的实体框架提供程序

通过nuget下载EF6并尝试运行我的项目后,它返回以下错误:

没有为ADO.NET提供程序找到具有不变名称"System.Data.SqlClient"的实体框架提供程序.确保提供程序已在应用程序配置文件的"entityFramework"部分中注册.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882.

在此输入图像描述

entity-framework

524
推荐指数
13
解决办法
36万
查看次数