豆瓣电台WP7客户端 开发记录3

今天完成了收藏功能。本来想用豆瓣账号登陆获取收藏列表的,不过后来一想我只要把歌曲信息记录在本地不是简单多了么。况且mango已经支持本地数据库,更能实践一下。

下面说说mango本地数据库开发。

这个其实如果你用过Linq to sql的话就很容易使用它了。

首先我们需要一个类来继承DbConent

using Model;
using System.Data.Linq;

namespace DbContent
{
    
public class DBFMDB :DataContext
    {
        
public static string _connStr = "Data Source=isostore:/FavSong.sdf";

        
public DBFMDB(string connStr)
            : 
base(connStr)
        { }

        
public Table<dbSong> favSong;
    }
}
这里千万注意 
public Table<dbSong> favSong;

你不能写成  

public Table<dbSong> favSong{get;set;},不然报错!为什么?我也不知道。

Model类:

using System.Data.Linq.Mapping;

namespace Model
{
    [Table]
    
public class dbSong 
    {
        
private int _id;
        [Column(IsPrimaryKey
=true,
            IsDbGenerated 
= true,
            DbType 
= "INT NOT NULL Identity",
            CanBeNull
=false,
            AutoSync
=AutoSync.OnInsert)]
        
public int ID
        { 
get { return _id; } set { _id = value; } }

        
private string _url;
        
/// <summary>
        
/// MP3 URL
        
/// </summary>
        [Column]
        
public string url
        { 
 

get { returnthis._url; } 

set { _url =value; }

 }

。。。。

 这里同上, 你不能写成 public string url {get;set;} 一定要像.NET 2.0的时候那样写属性。不然报错。为什么?我还是不知道。

最后是数据库操作类:

 using System.Data.Linq;

using System.Linq;
using DbContent;
using Model;
using System.Collections.Generic;

namespace Helper
{
    
public class DbHelper
    {
        
private static DBFMDB db;
        
/// <summary>
        
/// 创建
        
/// </summary>
        public static void CreateDb()
        {
           
if(db==null)
            {
                db 
= new DBFMDB(DBFMDB._connStr);
            }

           
if (!db.DatabaseExists())
           {
               db.CreateDatabase();
           }
            
        }

        
public static void AddSong(dbSong song)
        {

            db.favSong.InsertOnSubmit(
song);
            db.SubmitChanges();
        }

        
public static void DelSong(dbSong song)
        {
            dbSong oldS 
= db.favSong.Single(s => s.url == song.url);
            db.favSong.DeleteOnSubmit(oldS);
            db.SubmitChanges();
        }

        
public static List<dbSong> GetFavSongList()
        {
            var list 
= db.favSong.ToList();
            
return list;
        }

        
public static bool IsFavSong(dbSong song)
        {
            var obj 
= db.favSong.Where(o=>o.url==song.url);
            
if (obj != null&&obj.Count()>0)
                
return true;
            
else
                
return false;
        }
    }

} 

这个就没什么好说的了~~

收工睡觉~~~ 

QQ群:1022985150 VX:kklldog 一起探讨学习.NET技术
作者:Agile.Zhou(kklldog)
出处:http://www.cnblogs.com/kklldog/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/kklldog/p/2161492.html