标签: entity-framework-5

如何在Entity Framework 5中集成CTE查询

我有一个使用CTE编写的SQL查询.现在,我正在移动存储库以使用Entity Framework 5.

关于如何使用Entity Framework 5集成(或重写)基于CTE的查询,我感到很遗憾.

我正在使用EF5的POCO实体并拥有一堆Map类.没有EDMX文件等.

我现在感觉自己像一个完全的noob,并希望任何帮助指向我正确的方向.

CTE查询如下

WITH CDE AS
(
    SELECT * FROM collaboration.Workspace AS W WHERE W.Id = @WorkspaceId
    UNION ALL
    SELECT W.* FROM collaboration.Workspace AS W INNER JOIN CDE ON W.ParentId = CDE.Id AND W.ParentId <> '00000000-0000-0000-0000-000000000000'
)
SELECT
    W.Id AS Id,
    W.Name AS Name,
    W.Description AS Description,
    MAX(WH.ActionedTimeUtc) AS LastUpdatedTimeUtc,
    WH.ActorId AS LastUpdateUserId
FROM
    collaboration.Workspace AS W
    INNER JOIN
    collaboration.WorkspaceHistory AS WH ON W.Id = WH.WorkspaceId
    INNER JOIN
    (
        SELECT TOP 10
            CDE.Id
        FROM …
Run Code Online (Sandbox Code Playgroud)

common-table-expression entity-framework-5

0
推荐指数
1
解决办法
2480
查看次数

删除多对多关系

我有两节课:

public class User
{
    public int Id {get;set;}
    public string Username {get;set;}

    [InverseProperty("Users")]
    public virtual ICollection<Tag> Tags {get;set;}
}

public class Tag
{
    public int Id {get;set;}
    public string Title {get;set;}

    [InverseProperty("Tags")]
    public virtual ICollection<User> Users {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

这显然导致第3个表类似于称为UserTags的多对多关系,它只有两列,UserId和TagId.

现在假设我有100.000个用户和100.000个标签,平均每个Eser与1.000个标签有关系.我想从特定的User.Tags集合中删除单个标记,而不必在此之前加载所有标记.

最快的方法是什么?

many-to-many entity-framework entity-framework-4 entity-framework-5

0
推荐指数
1
解决办法
162
查看次数

EF给我生产错误而不是Dev.

我有一个生成的EF模型使用的以下连接字符串.它在我的本地机器上正常工作但是当我部署时,我得到以下错误.我在SO上看了多次引用的URL:http: //blogs.teamb.com/craigstuntz/2010/08/13/38628/如果它有答案,我不认为是我的情况.

我正在粘贴下面的错误

  <add name="svcodecampEntitiesAllTables" connectionString="metadata=res://*/EFModel.ModelAllTables.csdl|res://*/EFModel.ModelAllTables.ssdl|res://*/EFModel.ModelAllTables.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=svcc;integrated security=True;persist security info=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

{"message":"An error has occurred.","exceptionMessage":"Unable to load the specified metadata resource.","exceptionType":"System.Data.MetadataException","stackTrace":"   at System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.LoadResources(String assemblyName, String resourceName, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)\r\n   at System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource..ctor(String originalPath, String assemblyName, String resourceName, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)\r\n   at System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.CreateResourceLoader(String path, ExtensionCheck extensionCheck, String validExtension, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)\r\n   at System.Data.Metadata.Edm.MetadataArtifactLoader.Create(String path, ExtensionCheck extensionCheck, String validExtension, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)\r\n   at System.Data.Metadata.Edm.MetadataCache.SplitPaths(String paths)\r\n   at System.Data.Common.Utils.Memoizer`2.<>c__DisplayClass2.<Evaluate>b__0()\r\n   at System.Data.Common.Utils.Memoizer`2.Result.GetValue()\r\n   at System.Data.Common.Utils.Memoizer`2.Evaluate(TArg …
Run Code Online (Sandbox Code Playgroud)

entity-framework entity-framework-5

0
推荐指数
1
解决办法
4155
查看次数

当实体使用复合键时,实体框架5可以多对多

当我想首先使用代码映射多对多关系时,我对EF 5有一些问题.这是我的情景:

public class SegFunction
{
    public virtual string Idaplication {get;set;}

    public virtual string Idfunction {get;set;}

    public virtual List<SegRole> Roles { get; set; }

}

public class SegRole
{
    public virtual int Idrole { get; set; }

    public virtual List<SegFunction> Functions { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

这是我的地图:

private void MapSegRole()
    {
        this.modelBuilder.Entity<SegRole>()
        .Map(entity =>
        {
            entity.ToTable("seg_roles");
        });
        this.modelBuilder.Entity<SegRole>()
            .Property(t => t.Idrole).HasColumnName("id_role");
        this.modelBuilder.Entity<SegRole>()
             .HasKey(c => c.Idrole);


        modelBuilder.Entity<SegRol>()
       .HasMany(i => i.Functions)
       .WithMany(c => c.Roles)
       .Map(
        m =>
        {
            mc.ToTable("seg_role_function");
            m.MapRightKey("id_role");
            m.MapLeftKey("id_aplication");
            m.MapLeftKey("id_function"); …
Run Code Online (Sandbox Code Playgroud)

many-to-many fluent composite-key entity-framework-5

0
推荐指数
1
解决办法
3378
查看次数

如何在EntityFramework中查找月份之间的数据?

我需要显示本月的数据(从月份开始到结束的数据)我知道如何在 MySQL 中执行以下查询

enter code here select  @MonthAmount := IFNULL(sum(AmountReceived), 0.0) as TotoalAmountperMonth  
    from collection 
    where  date_time between DATE_FORMAT(NOW() ,'%Y-%m-01') 
        and LAST_DAY(now() - interval 0 month ) and AgentID=v_agent) as monthamount
Run Code Online (Sandbox Code Playgroud)

但是如何使用实体(lambda 表达式) 我对实体很陌生,当我用谷歌搜索时,我必须获取今天但一个月内的数据?

下面的查询得到了今天数据的结果

enter code here  var newAuctionsResults = repo.FindAllAuctions()
                    .Where(a => a.IsActive == true 
                                || (a.StartTime.Value.Year == todayYear
                                    && a.StartTime.Value.Month == todayMonth
                                    && a.StartTime.Value.Day == todayDay))
                    .ToList();
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework-5

0
推荐指数
1
解决办法
3446
查看次数

为什么当我选择从数据库更新我的 .edmx 文件时 Model.tt 类不会得到更新

我正在开发一个 asp.net mvc-4 web 应用程序。我正在使用实体框架 5。我使用 EF 映射了我的数据库表。

现在我曾经在我的 .tt 文件夹中有以下模型类:-

public partial class CustomAsset
    {
        public string CustomerName { get; set; }
        public int CustomTypeID { get; set; }
        public string Description { get; set; }
        public int ID { get; set; }
        public int Quantity { get; set; }


        public virtual CustomAssetType CustomAssetType { get; set; }

    }
Run Code Online (Sandbox Code Playgroud)

现在在名为“customAsset”的数据库表中,我删除了该CustomerName列。我添加了两列,其中一列是另一个表的外键。然后我打开我的 .edmx 文件,我右键单击,然后我选择从数据库更新模型,在那里我选择相关表并单击更新。现在 .edmx 文件中的模型正确地获得了新的列/关系,如下所示:-

在此处输入图片说明

但我相关的 .tt 类仍在引用旧列。我期待我的 .tt 模型类如下:-

public partial class CustomAsset
    {
        //public string CustomerName …
Run Code Online (Sandbox Code Playgroud)

entity-framework edmx edmx-designer entity-framework-5

0
推荐指数
1
解决办法
2560
查看次数

如何在数据库中存储图像,然后在MVC中显示它

如何在数据库中存储Image,然后使用MVC检索和显示它

我在用

MVC3
Entity Framework Database First
Run Code Online (Sandbox Code Playgroud)

SQL SERVER 2008
Run Code Online (Sandbox Code Playgroud)

在数据库中,我使用varbinary(MAX)作为图像

Image   varbinary(MAX)  Checked
Run Code Online (Sandbox Code Playgroud)

我还用过

[DisplayName("Image")]
    public byte[] Image { get; set; }
Run Code Online (Sandbox Code Playgroud)

在我的映射类中

当我尝试将其保存在我的创建操作方法中时

public ActionResult Create(MarjaaModel newMarjaa, HttpPostedFileBase uploadFile)
    {
        if (uploadFile != null && uploadFile.ContentLength > 0)
        {                               
            newMarjaa.Image = new byte[uploadFile.ContentLength];
            uploadFile.InputStream.Read(newMarjaa.Image, 0, uploadFile.ContentLength);
        }
        try
        {
            data.submitMarjaa(newMarjaa);
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我成功将图像保存为二进制数据

但是Plz告诉我如何检索这个图像并在我的视图中显示它

sql-server-2008 asp.net-mvc-3 entity-framework-5

-1
推荐指数
1
解决办法
1万
查看次数