我陷入了一個奇怪的問題。我有一個CashGameGeneralViewModel
類至極看起來像這樣linq查詢中的String.Format
public class CashGameGeneralViewModel
{
public string Limit { get; set; }
public int HandsPlayed { get; set; }
public float AmountWon { get; set; }
}
這裏是應該返回由某個播放器播放所有手中的方法:
public List<CashGameGeneralViewModel> GetAllHands(string playerToFind)
{
HoldemHandContext db = new HoldemHandContext();
int playerId = GetPlayerId(playerToFind);
var holdemHandResult = (from phh in db.PlayersInHoldemHands
from hh in db.HoldemHands
where hh.Id == phh.HandPlayed && phh.PlayerId == playerId
select new CashGameGeneralViewModel()
{
Limit = //"some text",
String.Format("{0:0.00}", hh.SBlindAmount) + "/" +
String.Format("{0:0.00}", hh.BBlindAmount),
HandsPlayed = db.HoldemHands.Distinct().Count(),
AmountWon = 0
}
).ToList();
return holdemHandResult;
}
public int GetPlayerId(string playerToFind)
{
HoldemHandContext db = new HoldemHandContext();
int playerId = (from p in db.Players
where p.ScreenName == playerToFind
select p.Id).FirstOrDefault();
return playerId;
}
現在的問題是
Limit = //"some text",
String.Format("{0:0.00}", hh.SBlindAmount) + "/" +
String.Format("{0:0.00}", hh.BBlindAmount)
部分。 hh.SBlindAmount
和hh.BBlindAmount
是浮點值。我想使用String.Format
,因爲0.10
被縮短爲0.1
,並以字符串格式獲得它,就像我想要的那樣。但我得到一個例外說,'The invocation of the constructor on type 'PokerRecord.View.CashGameGeneralUC' that matches the specified binding constraints threw an exception.' Line number '60' and line position '18'.
。當我刪除string.format並放入一些「常規」字符串時,一切正常......任何人都知道爲什麼?
你有應該有ABO更多信息InnerException屬性除外真正的問題。你檢查過了嗎? – Tim 2011-05-17 18:51:21
只是看了起來,現在我有另一個問題...內部異常是'LINQ to Entities不能識別'System.String格式(System.String,System.Object)'方法的方法,並且此方法無法翻譯進入一個商店的表達。「我怎麼能得到字符串格式,因爲我想在這裏? – 2011-05-17 18:54:31
我會嘗試下面的AllenG的答案,看看是否更好。我想LinQ to Entities試圖在其實際處理的查詢中使用string.format函數,而不是在事後處理。 AllenG的方式可能會解決這個問題,我不確定。 – Tim 2011-05-17 18:57:01