我试着在MVC中使用模型。我的模型与它所协调的数据库表的设置不同,因为我需要在视图中使用模型。但是,当用户从视图提交表单时,可能会提交更改的值,我需要用这些新值更新数据库。我遇到的问题是,在使用lambda表达式时,无法使数据类型与表匹配。希望这有助于更清楚地解释我的意思:
public class DataSharingModels
{
public string ReferenceID { get; set; }
public NBTC NBTCGroup { get; set; }
public Contractors ContractorsGroup { get; set; }
public Coordinators CoordinatorsGroup { get; set; }
public NGO NGOGroup { get; set; }
public Public PublicGroup { get; set; }
public SelectList FA_RA_List { get; set; }
}
public class NBTC
{
public Boolean NBTC_FA_Centroid { get; set; }
public Boolean NBTC_FA_Bound { get; set; }
public Boolean NBTC_RA_Centroid { get; set; }
public Boolean NBTC_RA_Bound { get; set; }
public Boolean NBTC_Spring_Sum { get; set; }
public Boolean NBTC_Spring_Analysis { get; set; }
public Boolean NBTC_Spring_Locate { get; set; }
public Boolean NBTC_Fall_Sum { get; set; }
public Boolean NBTC_Fall_Analysis { get; set; }
public Boolean NBTC_Fall_Locate { get; set; }
public Boolean NBTC_HabMon_Sum { get; set; }
public Boolean NBTC_HabMon_Analysis { get; set; }
public Boolean NBTC_HabMon_Locate { get; set; }
public Boolean NBTC_HabMgmt_Sum { get; set; }
public Boolean NBTC_HabMgmt_Analysis { get; set; }
public Boolean NBTC_HabMgmt_Locate { get; set; }
public Boolean NBTC_Inventory_Sum { get; set; }
public Boolean NBTC_OpSvy_Sum { get; set; }
public Boolean NBTC_OpSvy_Individ { get; set; }
}
//The NBTC class is essentially repeated four more times for Contractors,
// Coordinators, NGO, and Public. The prefixes are changed
//for the properties that make up those classes.
public class Contractors
{
public Boolean Contractors_FA_Centroid { get; set; }
public Boolean Contractors_FA_Bound { get; set; }
public Boolean Contractors_RA_Centroid { get; set; }
public Boolean Contractors_RA_Bound { get; set; }
public Boolean Contractors_Spring_Sum { get; set; }
public Boolean Contractors_Spring_Analysis { get; set; }
public Boolean Contractors_Spring_Locate { get; set; }
public Boolean Contractors_Fall_Sum { get; set; }
public Boolean Contractors_Fall_Analysis { get; set; }
public Boolean Contractors_Fall_Locate { get; set; }
public Boolean Contractors_HabMon_Sum { get; set; }
public Boolean Contractors_HabMon_Analysis { get; set; }
public Boolean Contractors_HabMon_Locate { get; set; }
public Boolean Contractors_HabMgmt_Sum { get; set; }
public Boolean Contractors_HabMgmt_Analysis { get; set; }
public Boolean Contractors_HabMgmt_Locate { get; set; }
public Boolean Contractors_Inventory_Sum { get; set; }
public Boolean Contractors_OpSvy_Sum { get; set; }
public Boolean Contractors_OpSvy_Individ { get; set; }
}
//And so on and so forth...
在SQL数据库表中,它的结构更像这样:
PermissionID | FocalRefID | ShareGroup | StateID | CIP_FA_Centroid | CIP_FA_Boundary | etc...
1 | <guid> | NBTC | NE | Allowed | Allowed
2 |<same guid> |Contractors | NE | Not Allowed | Allowed
3 |<same guid> |Coordinators| NE | Not Allowed | Not Allowed
4 |<same guid> | NGO | NE | Allowed | Allowed
5 |<same guid> | Public | NE | Allowed | Not Allowed
忽略guid不是此表中的真实guid(它不是主键)。。。在模型中
ReferenceID
FocalRefID
表的字段。班级
NBTC
具有满足数据库中单个记录所需的所有属性
NBTC公司
在
ShareGroup
字段(因此使用
NBTC公司
ShareGroup在
CIP_FA_Centroid
与属性相对应的字段
NBTC_FA_Centroid
NBTC nbtc = db.SharingPermissions.SingleOrDefault( NBTC => NBTC.FocalRefID == refID);
SharingPermission
(数据库表)以键入
NBTC公司
我要做的是拉取具有相同FocalRefID(和其他属性)的记录,并更新它在表中的值。
我想我只是对如何使用我的模型或lambda表达式感到困惑。