nh3Entities1 db = new nh3Entities1();
var ds = db.Set<sys_role>();
var _role = ds.Find(1);
if (_role.sys_menuaction.Count(m => m.fid == 5) == 0)
{
sys_menuaction _sm = new sys_menuaction
{
fid = 5
};
_role.sys_menuaction.Add(_sm);
db.Entry(_sm).State= System.Data.Entity.EntityState.Unchanged;
db.SaveChanges();
}
對應該產生三個sql
SELECT
`Extent1`.`fid`,
`Extent1`.`Name`,
`Extent1`.`CreateUser`,
`Extent1`.`UpdateUser`,
`Extent1`.`CreateTime`,
`Extent1`.`UpdateTime`,
`Extent1`.`Remark`,
`Extent1`.`IP`,
`Extent1`.`MAC`
FROM `sys_role` AS `Extent1`
WHERE `Extent1`.`fid` = 1 LIMIT 2
SELECT
`Extent2`.`fid`,
`Extent2`.`MenuTree_Id`,
`Extent2`.`Action_Id`
FROM (SELECT
`role_menu_action`.`MenuAction`,
`role_menu_action`.`Role`
FROM `role_menu_action` AS `role_menu_action`) AS `Extent1` INNER JOIN `sys_menuaction` AS `Extent2` ON `Extent1`.`MenuAction` = `Extent2`.`fid`
WHERE `Extent1`.`Role` = 1
INSERT INTO (SELECT
`role_menu_action`.`MenuAction`,
`role_menu_action`.`Role`
FROM `role_menu_action` AS `role_menu_action`)(
`MenuAction`,
`Role`) VALUES (
5,
1)
先不管它生產的查詢sql怎么樣,主要是INSERT INTO這樣子執行不成功呢 ,要怎么寫呢
uj5u.com熱心網友回復:
EF+mysql這么奇葩的組合……我沒這么用過,不過ef+sqlserver的時候多對多關系我都是定義一個類專門專門負責這多對多的物體型別,這樣linq就比較好寫了
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/284126.html
標籤:C#
上一篇:為什么別人可以這樣寫?
下一篇:OleDbConnection 怎樣使用 IDataInitialize::GetDataSource 方法來初始化連接屬性?
