在缓解方案资源管理器中——&gt,WCF服务应用程序

             上接WCF学习之旅—第三个示范之一(二十七)

 

二、WCF服务端应用程序

五、在品种BookMgr.Model成立实体类数据

率先步,创立WCF服务应用程序项目

第一步,安装Entity Framework

1)  使用NuGet下载最新版的Entity Framework
6.1.3。在解决方案资源管理器中——>在类型BookMgr.Model上鼠标右键单击——>弹出一个菜谱,选中“管了然决方案的NuGet程序包”,打开NuGet程序包管理界面。如下图。
图片 1

2)      在NuGet程序包管理界面中追寻
Entity,找到最新版本Entity Framework,点击安装。如下图。
图片 2

3)      安装已毕以后,如下图。
图片 3

 

开辟Visual Studio
2015,在菜单上点击文件—>新建—>项目—>WCF服务应用程序。在弹出界面的“名称”对应的文本框中输入“SCF.Wcf瑟维斯(Service)”,然后点击“确定”按钮。如下图。

第二步,创立实体数据模型

  1. 在“解决方案资源管理器”中使用鼠标右键,点击“BookMgr.Model”项目,在弹出菜谱上,依次选用“添加—》新建项。。。”
    图片 4

       2.
在“添加新项”对话框中,选拔“数据”节点,然后选用“ADO.NET
实体数据模型”项。

       3.在“名称”文本框中,输入
BookModel,然后选择“添加”按钮。
图片 5

 

            4.
在实体数据模型向导中,在挑选模型内容页上,拔取“来自数据库的 EF
设计器”,然后再选用下一步按钮。
图片 6

       5.
在“选取你的数据连接”页上实施下列步骤之一:

  • 假定下拉列表中富含到 Test
    示例数据库的数额连接,请选取该连接。
  • 仍然采纳“新建连接”按钮来布置新数据连接。
    如下图。
    图片 7

          6.
在“连接属性”对话框中选用相应的数据库服务器,输入用户名与密码,接纳要选拔的数据库。如下图。

图片 8

       7.
一旦数据库需求密码,请选拔“是,在接连字符串中包蕴敏感数据”选项按钮,然后拔取“下一步”按钮。
你可以洞察一下上面两图中的数据连接的界别。

  • 图片 9
  • 8.
    在“选拔数据库对象”页上,展开“表”节点、选中“客户”复选框,然后接纳“已毕”按钮。

继而彰显实体模型关系图,BookModel.edmx
文件也将丰裕到品种中。
图片 10

      9. 末段生成的结果如下。

图片 11  

      10.实际代码如下。

  //用户实体
//------------------------------------------------------------------------------
// <auto-generated>
//     此代码已从模板生成。
//
//     手动更改此文件可能导致应用程序出现意外的行为。
//     如果重新生成代码,将覆盖对此文件的手动更改。
// </auto-generated>
//------------------------------------------------------------------------------


namespace BookMgr.Model
{
    using System;
    using System.Collections.Generic;   

    public partial class Books
    {

        public int BookID { get; set; }

        public string Category { get; set; }

        public string Name { get; set; }

        public int Numberofcopies { get; set; }

        public int AuthorID { get; set; }

        public decimal Price { get; set; }

        public System.DateTime PublishDate { get; set; }

        public string Rating { get; set; }

    }
}

 

图片 12

第二步 , 安装Entity Framework

1)  使用NuGet下载最新版的Entity Framework
6.1.3。在化解方案资源管理器中——>在档次SCF.Wcf瑟维斯(Service)(Service)上鼠标右键单击——>弹出一个食谱,选中“管领悟决方案的NuGet程序包”,打开NuGet程序包管理界面。如下图。

 图片 13

2)      在NuGet程序包管理界面中寻觅
Entity,找到最新版本Entity Framework,点击安装。如下图。

 图片 14

3)      安装到位未来,如下图。

 图片 15

 

 

第三步,创建 SCF.Common 项目

  1. 在菜单栏上,依次采纳“文件–>新建–>项目”,或者正如图在“解决方案资源管理器”中使用鼠标右键,弹出快速菜单。
    如下图。图片 16
  2. 在“添加新类型”对话框中,展开 “Visual
    C#”和“Windows”节点,然后选用“类库”模板。
  3. 在“名称”文本框中,输入
    SCF.Common,然后选取“确定”按钮。 如下图。

 图片 17

  4.
在已经创办成功的SCF.Common项目中添加一个XMLHelper
.CS文件,写如下代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.IO;


namespace SCF.Common
{
    public class XMLHelper
    {
        /// <summary>
        /// 反序列化成对象
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="filename">XML文件路径</param>
        /// <returns></returns>
        public static T ParseXML<T>(string filename)
        {
            T obj = default(T);           
            XmlSerializer serializer = new XmlSerializer(typeof(T));
            /* If the XML document has been altered with unknown
                                nodes or attributes, handle them with the
                                UnknownNode and UnknownAttribute events.*/


            // A FileStream is needed to read the XML document.
            FileStream fs = new FileStream(filename, FileMode.Open);   

            try
            {
                obj =(T) serializer.Deserialize(fs);
            }
            catch (System.Exception ex)
            {
                string s = ex.Message;
                throw ex;
            }
            finally
            {
                fs.Close();
            }

           return obj;

        }

        /// <summary>
        /// 反序列化成对象
        /// </summary>
        /// <param name="filename">XML文件路径</param>
        /// <param name="type">对象类型</param>
        /// <returns></returns>
        public static object ToObject(string filename,Type type)
        {
            object obj;   
            XmlSerializer serializer = new XmlSerializer(type);
             FileStream fs = new FileStream(filename, FileMode.Open);
             try
            {
                obj = serializer.Deserialize(fs);
            }

            catch (System.Exception ex)
            {
                string s = ex.Message;
                throw ex;

            }
            finally
            {

                fs.Close();
            }
            return obj;
        }



        /// <summary>
        /// 反序列化成对象
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="data">XML数据对象字符串</param>
        /// <returns></returns>
        public static T DeSerializer<T>(string data)
        {

            T obj = default(T);
            XmlSerializer serializer = new XmlSerializer(typeof(T));
            try
            {
                using (StringReader sr = new StringReader(data))
                {
                    XmlSerializer xz = new XmlSerializer(typeof(T));
                    obj = (T)serializer.Deserialize(sr);                 

                }           

            }

            catch (System.Exception ex)
            {
                string s = ex.Message;
                throw ex;

            }
              return obj;

        }

        /// <summary>
        /// 创建XML文件
        /// </summary>
        /// <param name="fullFileName">XML文件名</param>
        /// <param name="data">XML字符串</param>
        public static void CreateXML(string fullFileName, string data)
        {

            using (StreamWriter sw = new StreamWriter(fullFileName, false, Encoding.UTF8))

            {
                sw.Write(data);
            }

        }

        /// <summary>
        /// 把对象转换成字符串
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="t">对象实体</param>
        /// <returns></returns>

        public static string ToXML<T>(T t)

        {

            using (StringWriter sw = new StringWriter())
            {

                XmlSerializer xz = new XmlSerializer(t.GetType());
                xz.Serialize(sw, t);
                return sw.ToString();
            }
        }
    }

}

 

第四步,创立实体数据模型

  1. 在菜单栏上,依次拔取“文件”、“新建”、“项目”。

  2. 在“新建项目”对话框中,展开 “Visual
    C#”和“Winodws”节点,然后选择“类库”模板,在“名称”对话框中输入“SCF.Model”,然后点击确定按钮。
    创制SCF.Model项目。如下图。

 图片 18

  
3.经过NuGet安装相关的组件,具体操作步骤参见第一步。如下图中黄框中的组件。

 图片 19

     4. 在菜单栏上,依次选取“项目”、“添加新项”。

     5.
在“添加新项”对话框中,接纳“数据”节点,然后选用“ADO.NET
实体数据模型”项。

     6. 在“名称”文本框中,输入
BookModel,然后选择“添加”按钮。如下图。

 图片 20

      7. 在实业数据模型向导中,在拔取模型内容页上,选用“来自数据库的
EF 设计器”,然后再选拔下一步按钮。 如下图。

 图片 21

    8.
在“选用你的数额连接”页上执行下列步骤之一:

  • 若果下拉列表中富含到 Test
    示例数据库的数目连接,请采取该连接。
  • 照旧选择“新建连接”按钮来安插新数据连接。
    如下图。

 图片 22

      9.
在“连接属性”对话框中拔取相应的数据库服务器,输入用户名与密码,选取要利用的数据库。如下图。

图片 23

    
10.假如数据库需求密码,请拔取“是,在连年字符串中富含敏感数据”选项按钮,然后选择“下一步”按钮。
你可以洞察一下下边图中的数据连接。

图片 24

 

   11.在“接纳你的版本”页上,采取“实体框架6.x”选项按钮,然后选择“下一步”按钮。

图片 25

说明

如果你已经按第二步中安装了具有WCF 服务的 Entity Framework 6 的最新版本,同时通过NuGet安装 WCF Data Services Entity Framework Provider 程序包,那么将不会出现此对话框,直接进入下一步。

 

    
12.在“采纳数据库对象”页上,展开“表”节点、选中“Books”复选框,然后选拔“完毕”按钮。

         
随即突显实体模型关系图,BookModel.edmx 文件也将丰硕到品种中。

 图片 26

13.最终生成的结果如下。

 图片 27

相关文章