1
ORM으로 LinqToSql을 사용하고 있습니다. 내가 GetInfoFromDataBase
를 호출 클릭 버튼 핸들러에서지정한 캐스트가 foreach에서 유효하지 않습니다.
public partial class frmBarcodeList : Form
{
private ConnectionStringSettings connectionString = ConfigurationManager.ConnectionStrings["myconn"];
private DatabaseContext _context;
public frmBarcodeList()
{
_context = new DatabaseContext(connectionString.ConnectionString);
InitializeComponent();
}
}
: 나는 다음 코드를 사용하여 양식을 가지고있다. 이 문제 방법 :
private List<TicketInfo> GetInfoFromDataBase()
{
try
{
var oids = GetSelectedEvents();
List<Order> orders = new List<Order>();
List<TicketInfo> data = new List<TicketInfo>();
foreach (var oid in oids)
{
orders.AddRange(_context.Orders.Where(o => o.ScheduleId == oid && o.IsPayed.Value).ToList());
}
foreach (var order in orders)
{
foreach (var detail in order.OrderDetails) ***line 158**
{
var checkSum = CalculateChecksum(detail.BarCode);
TicketInfo info = new TicketInfo();
info.Firstname = order.SiteUser.FirstName;
info.LastName = order.SiteUser.LastName;
info.Email = order.SiteUser.Email;
info.Phone = order.SiteUser.PhoneNumber;
info.Barcode = string.Format("{0}{1}", detail.BarCode, checkSum);
info.FileName = RemoveInvalidFilePathCharacters(string.Format("{0}_{1}", order.EventSchedule.BaseEvent.Name,
order.EventSchedule.RecurrenceStart), "");
data.Add(info);
}
}
return data;
}
catch (Exception e)
{
MessageBox.Show(e.Message + "\n" + e.StackTrace);
}
return null;
}
내가 얻을 오류 :
---------------------------
---------------------------
Specified cast is not valid.
at System.Data.SqlClient.SqlBuffer.get_Int32()
at System.Data.SqlClient.SqlDataReader.GetInt32(Int32 i)
at Read_OrderDetail(ObjectMaterializer`1)
at System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()
at System.Data.Linq.EntitySet`1.Load()
at System.Data.Linq.EntitySet`1.GetEnumerator()
at DT.KazBilet2.BarcodeChecker.frmBarcodeList.GetInfoFromDataBase() in C:\Users\Макс\Documents\Visual Studio 2010\Projects\DT.KazBilet2\branches\NewDesk\DT.KazBilet2.BarcodeChecker\frmBarcodeList.cs:line 158
---------------------------
ОК
---------------------------
가 왜이 오류가?
감사합니다.
모델 오류 (예 : 모델의 유형과 일치하지 않는 데이터베이스의 열 유형)처럼 보입니다. 하드 비록 더 구체적인. –
'OrderDetail' 정의와 해당 DBML 파일 조각을 게시 할 수 있습니까? – Dennis
@ JoachimIsaksson : 네, 맞습니다. 감사 – user1260827