这就是我今天所拥有的:
modelBuilder.Entity<User>()
.HasOptional(p => p.DealDevice)
.WithRequired(c => c.User)
.WillCascadeOnDelete(false);
Run Code Online (Sandbox Code Playgroud)
DealDevice如果用户被删除,我想要删除相关的行,这样我就可以删除用户并让所有相关信息消失.
我可以改变WillCascadeOnDelete(false)到WillCascadeOnDelete(true)或将是删除用户如果交易被删除?
这是我用来尝试包含User表的Lambda表达式,它会抛出错误.
ICollection<Activity> activity = db.Activities
.Include(i => i.Project.ProjectDoc.OfType<Cover>().Select(v => v.User))
.Where(u => u.UserID == WebSecurity.CurrentUserId)
.OrderByDescending(d => d.DateCreated).ToList();
Run Code Online (Sandbox Code Playgroud)
include语句给出了这个错误
Include路径表达式必须引用在类型上定义的导航属性.使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性.
有问题的模型
public abstract class ProjectDoc
{
public int ProjectDocID { get; set; }
public int ProjectID { get; set; }
public string DocTitle { get; set; }
public string Status { get; set; }
public string Access { get; set; }
public DateTime DateCreated { get; set; }
public virtual ProjectDocAccess ProjectDocAccess { get; set; }
public virtual …Run Code Online (Sandbox Code Playgroud) 我试图让使用斯威夫特和WKWebviews打开,有一个链接我的混合iOS应用程序target="_blank",或者如果URL中包含http://,https://或mailto:在移动Safari浏览器.
从这个答案我得到这个代码.
func webView(webView: WKWebView!, createWebViewWithConfiguration configuration: WKWebViewConfiguration!, forNavigationAction navigationAction: WKNavigationAction!, windowFeatures: WKWindowFeatures!) -> WKWebView! {
if navigationAction.targetFrame == nil {
webView.loadRequest(navigationAction.request)
}
return nil
}
Run Code Online (Sandbox Code Playgroud)
首先,这对我没有任何作用.其次,我希望它在新窗口中打开.我发现这个代码应该做那样的事情......
if let requestUrl = NSURL(string: "http://www.iSecurityPlus.com") {
UIApplication.sharedApplication().openURL(requestUrl)
}
Run Code Online (Sandbox Code Playgroud)
我如何把这两个放在一起让它们起作用?我需要添加什么来使ViewController声明工作?
当您长按WkWebview中的超链接时,将获得一个操作表。长按时,我想用我自己的一组选项覆盖该操作表,但否则会表现正常。我可以参加长按活动,但我不知道如何:
这是我想要的查询.
var commentActivity = project.ProjectDoc
.Select(c => c.Comment.Select(i => i.UserID))
.Distinct()
.Count();
Run Code Online (Sandbox Code Playgroud)
我想要的是来自特定项目的不同用户的评论数量,但是任何ProjectDoc.这个查询"有效",结果是错误的.这个模型就像这样,一般都是草绘的.
Project
ProjectDoc
Comment
Run Code Online (Sandbox Code Playgroud)
更新:我必须更深入一级,根据下面的答案,我尝试了一些不起作用的事情,所以我会发布这个作为参考.请注意两个SelectMany方法.
var replyActivity = project.ProjectDoc
.SelectMany(c => c.Comment.SelectMany(r => r.CommentReply.Select(u => u.UserID)))
.Distinct()
.Count();
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个全局过滤器,该过滤器将针对用户登录时的每个操作运行.从我所看到的,有两个必要的步骤.首先,在Global.asx文件中添加新过滤器.
public class MvcApplication : System.Web.HttpApplication
{
//I added this
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new NotificationFilter());
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
}
Run Code Online (Sandbox Code Playgroud)
然后我必须在filters文件夹中创建过滤器.
public class NotificationFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{ //Breakpoint here is never triggered
//This code doesn't work, but it's what I want to do
if (WebSecurity.CurrentUserId > 0)
{
var notificationCount = db.Notifications.GroupBy(i => i.UserID).Count();
if (notificationCount > 99)
{
ViewBag.Notifications = "99+";
} …Run Code Online (Sandbox Code Playgroud) 我试图在文档中的第二项之后包装所有内容.这是不起作用的代码.它正在Razor视图中使用.
@{var j = 0; var count = 10;}
@foreach (var reply in comment.CommentReply.OrderBy(x => x.DateCreated))
{
if (j == 2 && count > 2) {
<div class="hidden-replies">
}
Html.RenderPartial("_Reply", reply);
j++;
if (j == count && count > 2) {
</div>
}
}
Run Code Online (Sandbox Code Playgroud)
我相信它仍然在等待结束div,所以其他人不会被阅读.我该如何解决?
我有一个来自外部来源的实体列表.我需要将它与我已有的相比较,并且只添加不存在的那些.下面的伪代码.
var newVersions = item.Versions
.Where(s => db.ExistingVersions
.Select(t=>t.versionID)
.DoesNotContains(s.versionID));
Run Code Online (Sandbox Code Playgroud)
这显然不起作用,我不知道如何解决它.我不想使用for循环,因为我相信这意味着我会有数百个数据库命中只是为了检查每个项目的版本.我正在加载多个项目,每个项目有多达100个版本.