我想对具有可变搜索条件但在C#代码中的产品执行"动态SQL"搜索.例如,产品定义如下:
class Product
{
public decimal Price { get; set; }
public int Quantity { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的搜索控件有一个价格文本框和一个数量文本框.如果用户指定了某些内容,则应将其包含在搜索中(否则不包括在内).实际上,我的产品有超过2个属性.
如何通过变量条件基于任何此类搜索来一般地构建lambda表达式?
谢谢!
我正在使用Automapper在我的EF4模型和我的ViewModel之间进行转换.Automapper需要声明映射关系,我发现自己在每个控制器的构造函数中复制/粘贴它们.
Mapper.CreateMap<CoolObject, CoolObjectViewModel>();
Run Code Online (Sandbox Code Playgroud)
我在哪里可以放置映射声明,这样它们只会被调用一次而不是每次实例化一个控制器?这可能吗?
我正在为MVC 2 Web应用程序编写EF4数据层,我需要有关选择继承与抽象基类的建议.我的存储库在'generic repo'结构之后运行良好,但现在我想添加"Audit"功能,该功能在每次执行CRUD操作时都会记录.
这是我到目前为止使用的合同:
public interface IRepository<T>
{
void Create(T entity);
void Update(T entity);
void Delete(Func<T, bool> predicate);
T Get(Func<T, bool> predicate);
IQueryable<T> Query();
}
Run Code Online (Sandbox Code Playgroud)
我的回购 实现看起来像这样:
sealed class EFRepository<TEntity> : IRepository<TEntity>
where TEntity : EntityObject
{
ObjectContext _context;
ObjectSet<TEntity> _entitySet;
public EFRepository(ObjectContext context)
{
_context = context;
_entitySet = _context.CreateObjectSet<TEntity>();
}
public void Create(TEntity entity)
{
_entitySet.AddObject(entity);
_context.SaveChanges();
}
public void Update(TEntity entity)
{
_entitySet.UpdateObject(entity);
_context.SaveChanges();
}
public void Delete(Func<TEntity, bool> predicate)
{
TEntity entity = _entitySet.Single(predicate);
_entitySet.DeleteObject(entity); …Run Code Online (Sandbox Code Playgroud)