我有一个IQueryable,其实体框架4对象我想投影到他们的DTO等价物.一个这样的对象'Person'是EF4类,相应的POCO PersonP是我定义的类.我正在使用Automapper在它们之间进行映射.但是,当我尝试以下代码时:
IQueryable<Person> originalModel = _repo.QueryAll();
IQueryable<PersonP> projection = originalModel.Select(e => Mapper.Map<Person, PersonP>(e));
Run Code Online (Sandbox Code Playgroud)
投影在运行时生成此错误:
LINQ to Entities does not recognize the method 'TestSite.Models.PersonP Map[Person,PersonP](TestSite.DataLayer.Model.Person)' method, and this method cannot be translated into a store expression.
Run Code Online (Sandbox Code Playgroud)
IQueryable<PersonP>使用Automapper 创建投影的合适语法是什么?谢谢.
PS Automapper配置正确 - 我在其他地方使用它在Person和PersonP之间来回转换,即Mapper.Map<Person, PersonP>(myPersonObject)正确返回一个PersonP对象.
编辑(更多代码):
我正在使用它来帮助函数将EF4实体POCO(PersonP)绑定到Telerik网格 - 由于它们包含循环引用(即导航属性),因此不会正确地序列化实体本身.我的代码看起来像这样:
public static GridModel GetGridModel<TEntity, TPoco>(IRepository<TEntity> repo, GridState gridState) where TEntity : EntityObject
{
var originalModel = repo.QueryAll().ToGridModel(gridState);
var projection = originalModel.Select(e => Mapper.Map<TEntity, TPoco>(e));
return projection.ToGridModel(gridState); // applies filters, …Run Code Online (Sandbox Code Playgroud) lambda linq-to-objects linq-to-entities iqueryable projection
我有一个客户端与服务器程序(使用sqlite3作为存储)交谈,需要支持分页.我正在考虑如何实现这一点.一种方法:
1) user request page 1
a. execute query from sqlite3
b. return the first page range items to client
2) user request page N
a. execute query from sqlite3
b. return the N page range itmes to client
Run Code Online (Sandbox Code Playgroud)
因此,在我的方法中,每次用户请求数据时,我都会重新发出查询并获取指定的元素,这似乎浪费时间......(比较缓存所有项目一次,只是给用户部分要求,但这种方法是更复杂,因为我需要超时缓存 - 用户正在使用浏览器我不知道什么时候用户是loggout而缓存是无用的)
有更好的想法吗?
我们使用Redis作为缓存服务器,并且经常需要处理缓存列表.当我们缓存简单对象时,我们执行GET,如果对象不存在,Redis将返回null,并且我们将知道该对象未缓存并且必须从数据库加载.
但是我们如何才能最好地处理相同的列表 - 空列表可以是有效值.我们是否需要调用EXISTS来检查列表是否存在(但是使操作2调用而不是一个)或者是否有人更好地了解如何处理这种情况?
/谢谢
我正在使用SchemaUpdate我hbms与现有数据库同步.数据库最近基于hbms并且完全是最新的.但是SchemaUpdate再次生成所有外键约束.
例如假设你有Student和Teacher.与名称Student有关联.是一个外键来.假设数据库是最新的并且当前是holde ,以及它们的外键关系.所以并且是等价的.知道不能做任何事情,但是当我看到它生成的脚本时,它会再次重新生成该外键.TeacherArtTeacherArtTeacherStudentTeacherStudentTeacherHBMDatabaseSchemaUpdate
为什么会这样?有什么办法可以避免吗?
如图所示

我绘制了一组轮廓(多边形)作为GL_LINE_STRIP.现在我想选择鼠标下的曲线(多边形)来删除,在3D中移动..等.
我想知道使用哪种方法:
1.使用OpenGL挑选和选择.(glRenderMode(GL_SELECT))
2.使用拾取射线检查手动碰撞检测,并检查射线是否在每个多边形内.
我以这种格式定义了一个.py文件:
def foo1(): pass
def foo2(): pass
def foo3(): pass
Run Code Online (Sandbox Code Playgroud)
我从另一个文件导入它:
from foo import *
# or
import foo
Run Code Online (Sandbox Code Playgroud)
是否可以列出所有功能名称,例如["foo1", "foo2", "foo3"]?
谢谢你的帮助,我为我想要的东西上了课,如果你有建议,请评论
class GetFuncViaStr(object):
def __init__(self):
d = {}
import foo
for y in [getattr(foo, x) for x in dir(foo)]:
if callable(y):
d[y.__name__] = y
def __getattr__(self, val) :
if not val in self.d :
raise NotImplementedError
else:
return d[val]
Run Code Online (Sandbox Code Playgroud) 我正在从网上下载一个zip文件.它包含文件夹和文件.使用解压缩他们ZipInputstream和ZipEntry.Zipentry.getName给出文件名为htm/css/aaa.htm.
所以我正在创造新的 File(zipentry.getName);
但问题是抛出异常:File not found.我知道它正在创建子文件夹htm和css.
我的问题是:如何通过传递上述路径创建包含其子目录的文件?
我正在使用本教程在这里生成一个 ppt 文件
步骤 4 描述了如何换出图像占位符。我的图像有不同的尺寸,这使得一些图像看起来有点太有趣了。
有什么方法可以调整占位符的大小以保持尺寸吗?
编辑:好的,更好的解释:用户可以上传自己的图片。图像存储在服务器上。我正在生成一个 ppt 文件,每张幻灯片有一个用户。每张幻灯片都会有一张图片,如果有的话。我当然可以获得每个图像的尺寸,但是如何用占位符以外的另一个维度的图像替换占位符?
他们的任何GUI界面是否像Microsoft SQL Server 2005 Server Management Studio一样提供?因为基本上我用命令提示界面操作MySQL.