在我的asp.net mvc 3应用程序中,我正在使用存储库模式.我有3个实体,公司,国家,城市.他们每个人都有自己的存储库.公司实体拥有FoundedCountry和FoundedCity外键.现在在视图中,我想展示公司的详细信息.在此视图中,我想查看公司详细信息以及FoundedCountry名称和FoundedCity名称.在我看来,我必须通过一种JOIN查询来处理这个问题.但我坚持如何在存储库模式中实现这一点.如何在存储库模式中处理此JOIN?
谢谢.
在我的项目中,我正在使用EF Code First方法.我有一个存储库层,服务层和表示层(ASP.NET MVC).我正在为每个视图使用专用的视图模型.
我感到困惑的是,我的服务应该将实体返回到控制器以将它们映射到视图模型,还是应该实现DTO并从服务返回它们?
所以问题是当流程类似于"EF - >存储库 - >服务 - > UI"时,数据转换将是什么."实体 - > DTO - > Viewmodel"或"实体 - > Viewmodel"?
看起来如果我使用DTO,它们会有点重复实体.
我正在努力遵循最佳做法.
谢谢.
asp.net-mvc entity-framework dto repository-pattern viewmodel
我有一个通用的存储库实现.我正在使用asp.net mvc c#,代码第一个实体框架.
我创建了一个名为ISoftDelete的接口:
public interface ISoftDelete
{
bool IsDeleted { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我在我的基础存储库中实现了Delete和GetById,如下所示:
public virtual void Delete(T entity)
{
if (entity is ISoftDelete)
{
((ISoftDelete)entity).IsDeleted = true;
}
else
{
dbset.Remove(entity);
}
}
public virtual T GetById(long id)
{
T obj = dbset.Find(id);
if (obj is ISoftDelete)
{
if (((ISoftDelete)obj).IsDeleted)
return null;
else
return obj;
}
else
{
return obj;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我有2个问题.
1)这种方法是一种好方法吗?任何性能相关的问题?
2)我在基础存储库中的原始GetAll函数是这样的:
public virtual IEnumerable<T> GetAll()
{
return dbset.ToList();
}
Run Code Online (Sandbox Code Playgroud)
当从ISoftDelete派生T时,如何修改它以便列出IsDeleted == false的记录?
谢谢!
我在项目中使用服务层跟踪存储库模式.对于每个视图,我将创建一个viewmodel.
我感到困惑的是,服务层应该直接访问域对象并将它们返回给控制器,还是应该使用DTO.如果我应该使用DTO,将它们放在项目架构中的哪个位置?
谢谢.
我正在尝试了解ASP.NET身份验证和授权机制。我了解什么是要求和什么角色。在几乎所有相关的博客文章或此处的问题中,建议使用声明并避免使用角色。在这一点上,我感到困惑。如何使用没有角色的声明?(我通常会在用户注册后为他们分配角色。)
任何帮助表示赞赏。
谢谢
asp.net claims-based-identity role-base-authorization asp.net-identity