0

エラーを取得: session.Delete で「クエリを実行できませんでした」。

クエリをコピーして SQL サーバー管理スタジオで実行すると、選択クエリは問題なく実行されます。問題は削除か何かにあるようです...同じアプローチを使用して他のテーブルからレコードを削除していますが、うまく機能しているようです。

これを引き起こしているアイデアはありますか?

クラス:

    public class MultisitePublicBooking
    {
        public virtual int Id { get; set; }
        public virtual int multisiteID { get; set; }
        public virtual DateTime startDate { get; set; }
        public virtual DateTime startTime { get; set; }
    }

    public MultisitePublicBookingMap()
    {
        Table("tblMultisitePublicBooking");

        Id(x => x.Id).Column("PublicBookingID");
        Map(x => x.multisiteID).Column("MultisiteID");
        Map(x => x.startDate).Column("StartDate");
        Map(x => x.startTime).Column("StartTime");

    }

表は次のとおりです。

CREATE TABLE [dbo].[tblMultisitePublicBooking](
[PublicBookingID] [int] IDENTITY(1,1) NOT NULL,
[MultisiteID] [int] NULL,
[NumAttendees] [int] NULL,
[AttendeeName] [varchar](1024) NULL,
[AttendeePhone] [varchar](128) NULL,
[AtendeeEmail] [varchar](500) NULL,
[BookingPrice] [money] NULL,
[LID] [int] NULL,
[TimeZoneID] [int] NULL,
[DateTimeModified] [datetime] NULL,
[DateTimeCreated]  AS (getdate()),
[CurrentStep] [nvarchar](50) NULL,
[CallType] [nvarchar](8) NULL,
[CallSpeed] [nvarchar](10) NULL,
[StartDate] [date] NULL,
[StartTime] [time](7) NULL,
[endtime] [time](7) NULL,
[Duration] [time](7) NULL,
[Catering] [nvarchar](200) NULL,
[Equipment] [nvarchar](200) NULL,
[Telepresence] [bit] NULL,
[telepresenceConfigOption] [nvarchar](50) NULL,
[Sync] [bit] NULL,
[ReceiveOrDial] [varchar](50) NULL,
[NoteTXT] [text] NULL,
 CONSTRAINT [PK_tblMultisitePublicBooking] PRIMARY KEY CLUSTERED 
(
    [PublicBookingID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF,     ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

完全なエラー メッセージは次のとおりです。クエリを実行できませんでした

[ select multisitep0_.PublicBookingID as PublicBo1_18_, multisitep0_.MultisiteID as Multisit2_18_, multisitep0_.NumAttendees as NumAtten3_18_, multisitep0_.AttendeeName as Attendee4_18_, multisitep0_.AttendeePhone as Attendee5_18_, multisitep0_.AtendeeEmail as AtendeeE6_18_, multisitep0_.BookingPrice as BookingP7_18_, multisitep0_.LID as LID18_, multisitep0_.DateTimeModified as DateTime9_18_, multisitep0_.CurrentStep as Current10_18_, multisitep0_.CallType as CallType18_, multisitep0_.CallSpeed as CallSpeed18_, multisitep0_.StartDate as StartDate18_, multisitep0_.StartTime as StartTime18_, multisitep0_.Catering as Catering18_, multisitep0_site Equipment18_Equipment. Telepresence は Telepre17_18_ として、multisitep0_.telepresenceConfigOption は telepre18_18_ として、multisitep0_.Sync は Sync18_ として、multisitep0_.ReceiveOrDial は Receive20_18_ として、multisitep0_.NoteTXT as NoteTXT18_ from tblMultisitePublicBooking multisitep0_ where multisitep0_.MultisiteID=101156 ] [SQL: select multisitep0_.PublicBookingID as PublicBo1_18_, multisitep0_.MultisiteID as Multisit2_18_, multisitep0_.NumAttendees as NumAtten3_18_, multisitep0_.AttendeeName as Attendee4_18_, multisitep0_.AttendeePhone as Attendee5_18_, multisitep0_ .AtendeeEmail を AtendeeE6_18_ として、multisitep0_.BookingPrice を BookingP7_18_ として、multisitep0_.LID を LID18_ として、multisitep0_.DateTimeModified を DateTime9_18_ として、multisitep0_.CurrentStep を Current10_18_ として、multisitep0_.CallType を CallType18_ として、multisitep0_.CallSpeed を CallSpeed18_ として、multisite_Startitep0_.Startate0_.StartateD8 として multisite_StartateD8 としてStartTime18_ として、multisitep0_.Catering として Catering18_、multisitep0_.Equipment として Equipment18_、multisitep0_.Telepresence として Telepre17_18_、multisitep0_ として。telepresenceConfigOption を telepre18_18_ として、multisitep0_.Sync を Sync18_ として、multisitep0_.ReceiveOrDial を Receive20_18_ として、multisitep0_.NoteTXT を NoteTXT18_ として tblMultisitePublicBooking から multisitep0_ where multisitep0_.MultisiteID=101156]

内部例外は次のとおりです。

{"Input string '20:00:00' was not in the correct format."}

    {"Unable to cast object of type 'System.TimeSpan' to type 'System.IConvertible'."}

エラーメッセージのスクリーンショット

4

2 に答える 2

2

TimeSpan から SQL 'time' データ型へのマッピングに問題があるようです。

次のように startTime-property-mapping を設定することで修正できます。

        Map(x => x.startTime).CustomType("TimeAsTimeSpan");

マッピングが適切に設定されたら、指定したレコードを削除することもできます。

于 2012-11-01T14:30:36.627 に答える
0

そうです、問題はSQLサーバーの時間列マッピングにあります。ここでもっと読むことができます:ここ

xmlファイルのマッピングは次のようになります。

<property name="StartTime" type="TimeAsTimeSpan" />

エンティティは次のようになります。

public class MultisitePublicBooking
{
    public virtual int Id { get; set; }
    public virtual int MultisiteID { get; set; }
    public virtual DateTime StartDate { get; set; }
    public virtual TimeSpan StartTime { get; set; }
}
于 2012-10-31T16:21:52.270 に答える