** 原因: ** 在CodeFirst的時(shí)候,對(duì)于一對(duì)一的關(guān)系,如果在兩個(gè)Entity中都互相添加了對(duì)方作為導(dǎo)航屬性就會(huì)出現(xiàn)這樣的錯(cuò)誤。新建ApiController的時(shí)候提示“無(wú)法檢索元數(shù)據(jù)”,新建MVCController的時(shí)候回提示“未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例”
解決方案:刪掉其中的一個(gè)導(dǎo)航屬性

錯(cuò)誤:生成的Api提示說(shuō)有循環(huán)引用的情況時(shí),在Api項(xiàng)目的Global.asax文件內(nèi)添加代碼:
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
api
無(wú)法序列化:原因可能是因?yàn)镋ntity中的某個(gè)Entity的屬性與數(shù)據(jù)庫(kù)中對(duì)應(yīng)的表的屬性不對(duì)應(yīng),多了或少了,并且數(shù)據(jù)庫(kù)遷移的時(shí)候Ef并沒(méi)有發(fā)現(xiàn)這個(gè)不同
跨域訪(fǎng)問(wèn)Api:http://www.cnblogs.com/zd1994/p/6238468.html
//創(chuàng)建學(xué)校
var create = function (school) {
return $http.post(schoolApiUrl + "SchoolPost",school);
};
message:不支持OPTIONS方法:
解決方案:
API Web.config
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<!--<remove name="OPTIONSVerbHandler" />-->
<remove name="TRACEVerbHandler" />
<!--<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />-->
</handlers>
再把a(bǔ)pi的驗(yàn)證取消
//新增學(xué)校
// POST: api/Schools
[HttpPost]
[ResponseType(typeof(School))]
public IHttpActionResult SchoolPost(School school)
{
//school = JsonConvert.DeserializeObject<School>(thx);
//if (!ModelState.IsValid)
//{
// return BadRequest(ModelState);
//}
db.Schools.Add(school);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = school.ID }, school);
}
運(yùn)行所選代碼生成器時(shí)出錯(cuò) 調(diào)用的目標(biāo)發(fā)生了異常
在api的webconfig中配置了兩個(gè)connectionStrings,刪除其中一個(gè)
"ExceptionMessage":"LINQ to Entities 不識(shí)別方法get_Item(Int32)”,因此該方法
原因:linq表達(dá)式中無(wú)法識(shí)別某個(gè)方法,看你寫(xiě)的是哪個(gè)方法
比如:
//獲取角色菜單
List<Role_Menu> role_Menu = db.Role_Menu.Where(u => u.RoleID == user_Role.RoleID).ToList();
//這樣就會(huì)報(bào)上面的錯(cuò)誤,原因是where里面不能調(diào)用這種user_Role.RoleID。
//所以可以這樣寫(xiě),先把值構(gòu)造好,再直接傳值進(jìn)去
Guid str1 = user_Role.RoleID;
//獲取角色菜單
List<Role_Menu> role_Menu = db.Role_Menu.Where(u => u.RoleID == str1).ToList();
在應(yīng)用程序配置文件中找不到名為“DBConn”的連接字符串
原因:如果解決方案下有多個(gè)項(xiàng)目,則在做數(shù)據(jù)庫(kù)遷移的時(shí)候每個(gè)項(xiàng)目的config配置文件下都需要有鏈接數(shù)據(jù)庫(kù)的字符串
