相关疑难解决方法(0)

忽略Entity Framework 4.1 Code First中的类属性

我的理解是,在[NotMapped]EF 5当前处于CTP中之前,该属性不可用,因此我们无法在生产中使用它.

如何将EF 4.1中的属性标记为忽略?

更新:我注意到其他一些奇怪的事情.我得到了该[NotMapped]属性,但由于某种原因,即使public bool Disposed { get; private set; }标记为,EF 4.1仍会在数据库中创建一个名为Disposed的列[NotMapped].该IDisposeable课程当然是实现的,但我不知道这应该如何重要.有什么想法吗?

.net c# entity-framework ef-code-first entity-framework-4.1

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

从entityframework中检索一个没有ONE字段的对象

我正在使用实体框架来连接数据库.我有一个小问题:

我有一个表有一个varbinary(MAX)列(带有文件流).

我正在使用SQL请求来管理"数据"部分,而其余部分则使用EF(文件的元数据).

我有一个代码必须获取文件的所有文件id,文件名,guid,修改日期等.这根本不需要"数据"字段.

有没有办法检索List但没有填充此列?

就像是

context.Files.Where(f=>f.xyz).Exclude(f=>f.Data).ToList();
Run Code Online (Sandbox Code Playgroud)

??

我知道我可以创建匿名对象,但我需要将结果传递给方法,所以没有匿名方法.我不想把它放在匿名类型列表中,然后创建一个非匿名类型(File)列表.

目标是避免这种情况:

using(RsSolutionsEntities context = new RsSolutionsEntities())
{
    var file = context.Files
        .Where(f => f.Id == idFile)
        .Select(f => new {
            f.Id, f.MimeType, f.Size, f.FileName, f.DataType,
            f.DateModification, f.FileId
        }).FirstOrDefault();

    return new File() {
        DataType = file.DataType, DateModification = file.DateModification,
        FileId = file.FileId, FileName = file.FileName, Id = file.Id,
        MimeType = file.MimeType, Size = file.Size
    };
}
Run Code Online (Sandbox Code Playgroud)

(我在这里使用的是匿名类型,否则你会得到一个NotSupportedException:实体或复杂类型'ProjectName.File'不能在LINQ to Entities查询中构造.)

(例如,此代码抛出先前的异常:

File file2 = context.Files.Where(f => f.Id == idFile)
  .Select(f => new File() …
Run Code Online (Sandbox Code Playgroud)

.net c# sql entity-framework

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