Пример #1
0
        public void CustomSerializerWorksWithTVPs()
        {
            DbSerializationRule.Serialize <EncodedInt>(new EncodedTypeSerializer());

            var e = new EncodedInt()
            {
                Encoded = "Two"
            };
            var o = new TestWithSerializedObject()
            {
                Encoded = e
            };
            var data = new List <TestWithSerializedObject>()
            {
                o
            };

            try
            {
                Connection().ExecuteSql("CREATE TYPE TestTableWithEncodedInt AS TABLE (Encoded int)");

                using (var c = Connection().OpenWithTransaction())
                {
                    c.ExecuteSql("CREATE PROC TestEncoded(@Encoded [TestTableWithEncodedInt] READONLY) AS SELECT * FROM @Encoded");
                    var e2 = c.Query <TestWithSerializedObject>("TestEncoded", new { Encoded = data }).First();
                    Assert.AreEqual(e.Encoded, e2.Encoded.Encoded);
                }
            }
            finally
            {
                Connection().ExecuteSql("DROP TYPE TestTableWithEncodedInt");
            }
        }
		public void CustomSerializerWorksWithTVPs()
		{
			DbSerializationRule.Serialize<EncodedInt>(new EncodedTypeSerializer());

			var e = new EncodedInt() { Encoded = "Two" };
			var o = new TestWithSerializedObject() { Encoded = e };
			var data = new List<TestWithSerializedObject>() { o };

			try
			{
				Connection().ExecuteSql("CREATE TYPE TestTableWithEncodedInt AS TABLE (Encoded int)");

				using (var c = Connection().OpenWithTransaction())
				{
					c.ExecuteSql("CREATE PROC TestEncoded(@Encoded [TestTableWithEncodedInt] READONLY) AS SELECT * FROM @Encoded");
					var e2 = c.Query<TestWithSerializedObject>("TestEncoded", new { Encoded = data }).First();
					Assert.AreEqual(e.Encoded, e2.Encoded.Encoded);
				}
			}
			finally
			{
				Connection().ExecuteSql("DROP TYPE TestTableWithEncodedInt");
			}
		}