字符串或二进制数据将被截断。声明已终止(EF 5.0)

时间:2017-07-10 13:36:15

标签: c# sql-server entity-framework

我们有一个小的旧应用程序,它将数据从一个服务器传输到另一个服务器(使用Entity Framework 5.0和SQl服务器)并生成报告问题,即它在传输数据时。我得到了(" InnerException = {"字符串或二进制数据将被截断。\ r \ n语句已被终止。"}" ..

关于某些数据......但如果我想用" id"输入该特定数据使用相同的应用程序,它插入它没有问题。我在某处读到这是EF(5.0)的问题,但我不确定所以请让我知道。

1 个答案:

答案 0 :(得分:1)

您有一个指定长度的char / varchar / nchar / nvarchar列。您正在插入一个值,其长度大于指定的长度。

当您从旧服务器读取它时,您应该使用defmodule MyStruct do defstruct [:x, :y, valid?: false] # We want `x` and `y` to always be integers. def new(x, y) when is_integer(x) and is_integer(y) do {:ok, %__MODULE__{x: x, y: y, valid?: true}} end def new(_, _), do: :error def print(%__MODULE__{x: x, y: y, valid?: true}) do IO.inspect {x, y} end end defmodule Main do def main do IO.inspect MyStruct.new(1, 2) IO.inspect MyStruct.new(1, 2.3) {:ok, a} = MyStruct.new(1, 2) MyStruct.print(a) try do # This will throw an error because `valid?` will be false. MyStruct.print(%MyStruct{}) rescue e -> IO.inspect e end # This however will work and there's no way to stop it. MyStruct.print(%MyStruct{x: "x", y: "y", valid?: true}) end end Main.main 从源获取前X个字符(其中X是数据库列长度)。如果这样做,您的错误将会停止。