public void AddExtensionObjectTest()
        {
            using (SampleObjectDataContext ctx = CreateSampleObjectDataContext())
            {
                SampleObject sampleObject = new SampleObject { Name = "RapidWebDev", ExtensionDataTypeId = this.ObjectMetadataTypeId };
                sampleObject["Name"] = "Eunge";
                sampleObject["Birthday"] = new DateTime(1982, 2, 7);
                sampleObject["Level"] = 10;
                sampleObject["Salary"] = 5000m;
                sampleObject["Position"] = new HierarchyNodeValueCollection { "Dev" };
                sampleObject["HuKou"] = new EnumerationValueCollection { "SiChuan" };

                ctx.SampleObjects.InsertOnSubmit(sampleObject);
                ctx.SubmitChanges();

                sampleObject = ctx.SampleObjects.FirstOrDefault(so => so.ObjectId == sampleObject.ObjectId);
                Assert.AreEqual("Eunge", sampleObject["Name"]);
                Assert.AreEqual(new DateTime(1982, 2, 7), sampleObject["Birthday"]);
                Assert.AreEqual(10, sampleObject["Level"]);
                Assert.AreEqual(5000m, sampleObject["Salary"]);
                Assert.AreEqual("Dev", (sampleObject["Position"] as HierarchyNodeValueCollection)[0]);
                Assert.AreEqual("SiChuan", (sampleObject["HuKou"] as EnumerationValueCollection)[0]);
            }
        }
 partial void UpdateSampleObject(SampleObject instance);
 partial void DeleteSampleObject(SampleObject instance);
 partial void InsertSampleObject(SampleObject instance);