小编lju*_*tin的帖子

如何在ASP.NET MVC 3中更新复杂模型

我试图在单个视图中更新复杂模型.我正在使用ASP.NET MVC3,Entity Framework with Code first,工作单元,通用存储库模式..但是当我尝试更新模型时,我想出了这个错误:

发生了引用完整性约束违规:定义引用约束的属性值在关系中的主体和从属对象之间不一致.

这是我的简化视图模型:

public class TransactionViewModel
{
     public Transaction Transaction { get; set; }
     public bool IsUserSubmitting { get; set; }
     public IEnumerable<SelectListItem> ContractTypes { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是我的简化复杂模型,并作为其导航属性之一的示例.Transaction与其所有导航属性具有一对一的关系:

public class Transaction
{
    [Key]
    public int Id { get; set; }

    public int CurrentStageId { get; set; }

    public int? BidId { get; set; }

    public int? EvaluationId { get; set; }

    public virtual Stage CurrentStage { get; set; }

    public virtual Bid Bid …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework unit-of-work ef-code-first

6
推荐指数
1
解决办法
6077
查看次数

MVC3,多文件上传,模型绑定

可以更新复杂模型(Transaction).复杂模型具有可以具有多个附件(文件)的属性,因此用户可以在此表单中同时上载多个文件,并且我尝试将这些文件保存到数据库中.

我已经成功将多个文件发布到服务器,请访问博客文章 http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx.

但是为了保存这些文件,以便我可以跟踪哪些文件属于复杂模型(Transaction)的哪个对象,因此稍后在适当的位置显示它们,我需要一些方法将上传的文件关联到它所属的对象到,但由于所有文件都在名称'文件'下,我不知道如何使这项工作.

这是简化的复杂模型:

public class Transaction
{
    [Key]
    public int Id { get; set; }

    public virtual PurchaseRequisition PurchaseRequisition { get; set; }

    public virtual Evaluation Evaluation { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

复杂模型的属性:

public class PurchaseRequisition
{
    [Key, ForeignKey("Transaction")]
    public int TransactionId { get; set; }

    public virtual Transaction Transaction { get; set; } 

    [Display(Name = "Specifications/Requisitioner's Notes")]
    public virtual ICollection<Attachment> SpecsRequisitionerNotesFiles { get; set; }
}

public class Evaluation
{
    [Key, ForeignKey("Transaction")]
    public int TransactionId { …
Run Code Online (Sandbox Code Playgroud)

entity-framework file-upload model-binding asp.net-mvc-3

6
推荐指数
1
解决办法
6375
查看次数

如果LINQ中的列为空,如何忽略'where'和'order by'条件

我有事务对象列表,并希望根据用户当前查看的视图按特定条件对它们进行排序.

我遇到的问题是,为了在where子句中添加条件,首先我需要检查它是否为null以防止空指针异常.这会导致过滤掉列null的记录(我希望将它们包含在列表的底部).

我如何修改查询,以便它忽略条件(where和order by),如果该列为null并仍然将它们附加到结果集?

这是一个示例查询:

transactions = transactions
                    .Where(t => t.PurchaseRequisition != null && 
                    t.Award != null && t.PurchaseRequisition.RequisitionedBy != null)
                    .OrderBy(t => t.Award.ContractNumber).
                    ThenBy(t => ToSafeString(t.Award.ContractNumber)).
                    ThenBy(t => ToSafeString(t.PurchaseRequisition.RequisitionedBy.FullName));


public string ToSafeString(string s)
{
    return s ?? String.Empty;
}
Run Code Online (Sandbox Code Playgroud)

//我希望将PurchaseRequisition或Award为null的记录附加到结果集.

c# sql linq

5
推荐指数
1
解决办法
5785
查看次数

C中的char指针初始化

关于字符指针以及它们是如何工作的我不太清楚.

程序构建,但在运行时崩溃.

 char *ab = NULL;
 //ab = "abc123"; // works fine
 sprintf(ab, "abc%d", 123); // this line seems to crash the program
Run Code Online (Sandbox Code Playgroud)

当sprintf接受(char*str)作为第一个参数时,我不明白这是怎么回事.

有人可以向我解释一下吗?

c string pointers char

3
推荐指数
1
解决办法
3万
查看次数

配置配置文件和推送通知证书

我接到一项任务(重新?)启用公司 iOS 应用程序的推送通知,但不知道从哪里开始。

我了解到配置文件包含有关启用哪些应用程序服务的信息,因此我登录苹果开发人员中心并进入“证书,标识符和配置文件”页面,但看到开发iOS配置文件已经启用了推送通知。

然而,在“应用程序 ID”部分中,它显示推送通知可配置,并带有黄点。

这是否意味着推送通知不再起作用?

如果是这种情况,重新生成推送通知证书可以修复它吗?或者我还必须创建一个新的配置文件吗?

谢谢!

ssl-certificate apple-push-notifications ios provisioning-profile

2
推荐指数
1
解决办法
8740
查看次数