我有一个使用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) 我有两节课:
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
我有一个生成的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="data source=.;initial catalog=svcc;integrated security=True;persist security info=True;multipleactiveresultsets=True;application name=EntityFramework"" 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) 当我想首先使用代码映射多对多关系时,我对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) 我需要显示本月的数据(从月份开始到结束的数据)我知道如何在 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-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) 如何在数据库中存储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告诉我如何检索这个图像并在我的视图中显示它